Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
1 / 1 / 0
Регистрация: 06.03.2017
Сообщений: 109
1

Найти сумму цифр целого числа

21.07.2017, 09:53. Показов 6289. Ответов 21
Метки нет (Все метки)

Дано одно целое 32-х разрядное число (число может быть отрицательным). Вывести сумму.
Input: 321
Output: 6

Почему моя программа не работает?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main()
{
 long long int n;
    scanf("%lld", &n);
    int sum = 0;
    while (n != 0) 
    {
        sum += n % 10;
        n /= 10;
    }
    printf("%lld", sum);
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2017, 09:53
Ответы с готовыми решениями:

Найти сумму цифр данного целого числа
Дано целое число. Составить программу которая находит сумму цифр

Для целого числа найти сумму нечетных цифр
Для целого числа найти сумму нечетных цифр в C++. Ребята,кто может помочь мне с кодом.Недавно...

Найти количество C цифр целого положительного числа K, а также их сумму S
Описать функцию DigitCountSum(K, C, S), находящую количество C цифр целого положительного числа K,...

Найти сумму третьей и четвертой с конца цифр положительного целого числа k
Присвоить целой переменной h сумму третьей и четвертой с конца цифр положительного целого числа k...

21
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.07.2017, 09:58 2
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Почему моя программа не работает?
у меня все работает..
1
66 / 49 / 27
Регистрация: 27.04.2015
Сообщений: 201
21.07.2017, 10:18 3
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Почему моя программа не работает?
В чем это выражается? (ошибка компиляции, программа останавливается, неверный вывод и т.д.)

PS Может быть вы забыли приостановить программу и ждете, что она сама остановиться, чтобы вы успели вывод посмотреть?..
2
Эксперт C
26093 / 16280 / 3497
Регистрация: 24.12.2010
Сообщений: 35,687
21.07.2017, 11:14 4
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
число может быть отрицательным
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
int main()
{
 long long int n;
    scanf("%lld", &n);
    if (n < 0)  n = -n;
    int sum = 0;
    while (n != 0) 
    {
        sum += n % 10;
        n /= 10;
    }
    printf("%lld", sum);
    return 0;
}
К вопросу предыдущего оратора присоединяюсь
1
885 / 803 / 272
Регистрация: 27.07.2012
Сообщений: 2,265
21.07.2017, 11:23 5
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Дано одно целое 32-х разрядное число
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
long long int n;
Айайай
1
Эксперт C
26093 / 16280 / 3497
Регистрация: 24.12.2010
Сообщений: 35,687
21.07.2017, 11:28 6
Цитата Сообщение от John Prick Посмотреть сообщение
Айайай
Ну, это не ошибка. Возможно, излишняя щедрость...

Добавлено через 1 минуту
Кстати, long long есть не у всех компиляторов. Есть достаточно старинные...
1
Модератор
Эксперт С++
11130 / 9168 / 5506
Регистрация: 18.12.2011
Сообщений: 24,485
21.07.2017, 11:49 7
Цитата Сообщение от Байт Посмотреть сообщение
int sum...
Цитата Сообщение от Байт Посмотреть сообщение
printf("%lld",...
%lld - это спецификация для вывода long long,
а для int надо %d
2
Эксперт C
26093 / 16280 / 3497
Регистрация: 24.12.2010
Сообщений: 35,687
21.07.2017, 11:53 8
zss, Прошу прощения. Код скопипастил, и на эту "мелочь" не обратил внимания.
0
1 / 1 / 0
Регистрация: 06.03.2017
Сообщений: 109
21.07.2017, 11:58  [ТС] 9
YarRainbow, когда отправляю задачу на сайте, проходит лшь 50%
0
66 / 49 / 27
Регистрация: 27.04.2015
Сообщений: 201
21.07.2017, 12:19 10
Лучший ответ Сообщение было отмечено MariaFitzgerald как решение

Решение

Вы сделали исправления, на которые вам указали Байт и zss?
вот эти
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
int main()
{
 long long int n;
    scanf("%lld", &n);
    if (n < 0)  n = -n;//здесь
    int sum = 0;
    while (n != 0) 
    {
        sum += n % 10;
        n /= 10;
    }
    printf("%d", sum);//и здесь
    return 0;
}

По прежнему не принимает?
1
1464 / 1172 / 551
Регистрация: 08.01.2012
Сообщений: 4,517
21.07.2017, 12:24 11
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
число может быть отрицательным
....
0
1 / 1 / 0
Регистрация: 06.03.2017
Сообщений: 109
21.07.2017, 13:02  [ТС] 12
YarRainbow, уже принимает! Большой спасибо) Вы не могли бы напоследок глянуть здесь? Нужно найти вторую цифру целого числа. Отсчёт начинать с наивысшего разряда.
Входные данные
Одно целое 64-х разрядное число, содержащее не менее двух цифр. Число может быть отрицательным.
Выходные данные
Выведите вторую цифру заданного числа
Input- 43568
Output-3
Тоже проходит 50%.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include<string>
using namespace std;
int main() 
{
string str;
cin>>str;
for(int i=0;i<str.size();i++)
{
   if(i==1) cout<<str[i];
}
    return 0;
}
0
66 / 49 / 27
Регистрация: 27.04.2015
Сообщений: 201
21.07.2017, 13:21 13
MariaFitzgerald, да не за что. Вы бы тех кто вам изначально на ошибки указал благодарили.

Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Вы не могли бы напоследок глянуть здесь?
Один вопрос - одна тема. Не нарушайте правила форума(5.16), лучше создайте новую тему.
1
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,711
Записей в блоге: 1
21.07.2017, 13:24 14
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include<string>
using namespace std;
int main() 
{
string str;
cin>>str;
for(int i=0;i<str.size();i++)
{
   if(i==1) cout<<str[i];
}
    return 0;
}
wtf???
0
Azazel-San
21.07.2017, 13:30
  #15

Не по теме:

MariaFitzgerald, не стоит брать чужие программы, а затем для правки кидать их сюда))

0
YarRainbow
21.07.2017, 13:39
  #16

Не по теме:

Azazel-San, да по программе вроде бы он и сам писал...Опять забыл про минус, например. Ну и сам факт, того, что он потом выдаст символ, а не число, тоже прошел мимо автора.
MariaFitzgerald,хотя бы так как-то:

Решение 1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main() {
    long long n;
    std::cin >> n;
    if (n < 0) n = -n;
    while (n/100>=1)
    {
        n /= 10;
    }
    n = n % 10;
    std::cout << n;
}
PS А если уж очень хочеться схитрить через строки, то тут надо лишь проверить str[0] на наличие минуса и вывести преобразованный в число символ str[1] либо str[2]
Решение 2
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include<string>
 
int main()
{
    std::string str;
    std::cin >> str;
    std::cout << ((str[0] == '-') ? (str[2] - '0') : (str[1] - '0'));
}

0
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.07.2017, 13:54 17
YarRainbow,

Не по теме:

я не об этом)) один код на Сишке, второй на плюсах, причём сразу с использованием stl, и ничего не понимает, что где делает, что там, что здесь

1
Любитель чаепитий
3587 / 1687 / 519
Регистрация: 24.08.2014
Сообщений: 5,711
Записей в блоге: 1
21.07.2017, 14:03 18
Цитата Сообщение от YarRainbow Посмотреть сообщение
(str[2] - '0')
зачем тут вычитание? )

Добавлено через 15 секунд
Цитата Сообщение от YarRainbow Посмотреть сообщение
(str[2] - '0')
зачем тут вычитание? )
1
Mental handicap
1245 / 623 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.07.2017, 14:14 19
Цитата Сообщение от GbaLog- Посмотреть сообщение
вычитание
наверное имелось ввиду ==
0
66 / 49 / 27
Регистрация: 27.04.2015
Сообщений: 201
21.07.2017, 14:45 20
Цитата Сообщение от Azazel-San Посмотреть сообщение
наверное имелось ввиду ==
Да нет, не имелось.
Цитата Сообщение от GbaLog- Посмотреть сообщение
зачем тут вычитание? )
Наверное это лишнее, но я ведь не знаю, как работает система, которая автоматически тестирует программу.
Как я понимаю, если str[2]=='5', например, то (str[2] - '0') выведет мне 5, а если просто вывести str[2], то на выходе будет '5'
Или я зря преобразую и все что выходит с cout - есть поток символов и не более?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2017, 14:45

Для целого числа n, найти сумму квадратов его цифр. Проверить является ли полученное число четным
Помогите плз)

Посчитать сумму цифр и сумму делителей данного целого числа
помогите пожалуйста Составить программу, которая решает следующие задачи, используя только...

Рассчитать сумму цифр данного целого числа X.
Я знаю что это очень легкая задача, но тем не менее я никак не могу решить. Помогите мне...

Написать функцию, находящую сумму цифр целого числа
Написать функцию SumDigit(N), находящую сумму цифр целого числа N (N - входной параметр). При вводе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.