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

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

21.07.2017, 09:53. Показов 12090. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.07.2017, 09:53
Ответы с готовыми решениями:

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

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

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

21
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.07.2017, 09:58
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Почему моя программа не работает?
у меня все работает..
1
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
21.07.2017, 10:18
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Почему моя программа не работает?
В чем это выражается? (ошибка компиляции, программа останавливается, неверный вывод и т.д.)

PS Может быть вы забыли приостановить программу и ждете, что она сама остановиться, чтобы вы успели вывод посмотреть?..
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.07.2017, 11:14
Цитата Сообщение от 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
2393 / 1921 / 763
Регистрация: 27.07.2012
Сообщений: 5,562
21.07.2017, 11:23
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Дано одно целое 32-х разрядное число
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
long long int n;
Айайай
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.07.2017, 11:28
Цитата Сообщение от John Prick Посмотреть сообщение
Айайай
Ну, это не ошибка. Возможно, излишняя щедрость...

Добавлено через 1 минуту
Кстати, long long есть не у всех компиляторов. Есть достаточно старинные...
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
21.07.2017, 11:49
Цитата Сообщение от Байт Посмотреть сообщение
int sum...
Цитата Сообщение от Байт Посмотреть сообщение
printf("%lld",...
%lld - это спецификация для вывода long long,
а для int надо %d
2
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
21.07.2017, 11:53
zss, Прошу прощения. Код скопипастил, и на эту "мелочь" не обратил внимания.
0
1 / 1 / 0
Регистрация: 06.03.2017
Сообщений: 109
21.07.2017, 11:58  [ТС]
YarRainbow, когда отправляю задачу на сайте, проходит лшь 50%
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
21.07.2017, 12:19
Лучший ответ Сообщение было отмечено 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
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
21.07.2017, 12:24
Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
число может быть отрицательным
....
0
1 / 1 / 0
Регистрация: 06.03.2017
Сообщений: 109
21.07.2017, 13:02  [ТС]
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
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
21.07.2017, 13:21
MariaFitzgerald, да не за что. Вы бы тех кто вам изначально на ошибки указал благодарили.

Цитата Сообщение от MariaFitzgerald Посмотреть сообщение
Вы не могли бы напоследок глянуть здесь?
Один вопрос - одна тема. Не нарушайте правила форума(5.16), лучше создайте новую тему.
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.07.2017, 13:24
Цитата Сообщение от 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
21.07.2017, 13:30

Не по теме:

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

0
21.07.2017, 13:39

Не по теме:

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
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.07.2017, 13:54
YarRainbow,

Не по теме:

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

1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
21.07.2017, 14:03
Цитата Сообщение от YarRainbow Посмотреть сообщение
(str[2] - '0')
зачем тут вычитание? )

Добавлено через 15 секунд
Цитата Сообщение от YarRainbow Посмотреть сообщение
(str[2] - '0')
зачем тут вычитание? )
1
Mental handicap
 Аватар для Azazel-San
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
21.07.2017, 14:14
Цитата Сообщение от GbaLog- Посмотреть сообщение
вычитание
наверное имелось ввиду ==
0
68 / 51 / 27
Регистрация: 27.04.2015
Сообщений: 203
21.07.2017, 14:45
Цитата Сообщение от Azazel-San Посмотреть сообщение
наверное имелось ввиду ==
Да нет, не имелось.
Цитата Сообщение от GbaLog- Посмотреть сообщение
зачем тут вычитание? )
Наверное это лишнее, но я ведь не знаю, как работает система, которая автоматически тестирует программу.
Как я понимаю, если str[2]=='5', например, то (str[2] - '0') выведет мне 5, а если просто вывести str[2], то на выходе будет '5'
Или я зря преобразую и все что выходит с cout - есть поток символов и не более?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.07.2017, 14:45
Помогаю со студенческими работами здесь

Найти сумму третьей и четвертой с конца цифр положительного целого числа k
Присвоить целой переменной h сумму третьей и четвертой с конца цифр положительного целого числа k (например, если k = 130985, то h = 9 + 0).

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru