Форум программистов, компьютерный форум CyberForum.ru

Сумма цифр - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Bumer@ng
 Аватар для Bumer@ng
0 / 0 / 0
Регистрация: 20.08.2010
Сообщений: 69
20.08.2010, 22:29     Сумма цифр #1
Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2010, 22:29     Сумма цифр
Посмотрите здесь:

C++ Определения, равна сумма цифр целой части вещественного числа сумме такого же количества цифр в дробной части
Найдите такие натуральные числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7 C++
C++ Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7
Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу C++
Определить для числа: является ли сумма его цифр двузначным числом; больше ли сумма его цифр числа "а" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
21.08.2010, 00:14     Сумма цифр #21
CyBOSSeR, Извените, в силу своей необразованости не понял о чем вы говорили здесь:
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Оператор следования (,) использовать подобным образом вообще не стоит.
easybudda, Зачет
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.08.2010, 00:31     Сумма цифр #22
Что-то я увлёкся...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
int main(void){
    char buf[BUFSIZ], * p;
    int sum = 0;
    printf("Enter a number length of %d digits or less\n> ", BUFSIZ - 1);
    if ( ! fgets(buf, BUFSIZ, stdin) ){
        printf("Input error!\n");
        exit(1);
    }
    for ( p = buf; isdigit(*p); ++p )
        sum += *p - '0';
    if ( *p && ! isspace(*p) ){
        printf("Wrong input!\n");
        exit(1);
    }
    printf("Sum of digits: %d\n", sum);
    exit(0);
}
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.08.2010, 00:37     Сумма цифр #23
Цитата Сообщение от outoftime Посмотреть сообщение
Извените, в силу своей необразованости не понял о чем вы говорили здесь
Оператор следования - запятая. Не стоит с ним переусердствовать.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.08.2010, 00:41     Сумма цифр #24
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
if ( *p
это условие никогда не сработает, так как перед этим выкинет из цикла
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
isdigit(*p)
те лишнее условие
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.08.2010, 00:42     Сумма цифр #25
alex_x_x,
Вроде как это условие стоит после цикла, а не внутри него...
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.08.2010, 00:44     Сумма цифр #26
а да, все верно, привык везде кавычки ставить
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.08.2010, 00:45     Сумма цифр #27
alex_x_x,
Аналогично, но пришлось переучиваться - слишком громоздко выходило)))
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.08.2010, 00:59     Сумма цифр #28
alex_x_x, оно сработает, если ввести что-нибудь кроме цифры и ввод признаком EOF закончить (Ctrl + Z / Ctrl + D) - я пробовал... Типа защита от неправильного ввода. Но в основном ( ! isspace(*p) ) при неправильном вводе срабатывает. Всё там правильно, короче!

Добавлено через 6 минут
Цитата Сообщение от easybudda Посмотреть сообщение
оно сработает, если ввести что-нибудь кроме цифры и ввод признаком EOF закончить
вернее даже не так - ( *p ) при нормальном вводе будет всегда работать ( *p == '\n' ) там другой косяк - максимальное количество цифр BUFSIZ - 2, что вобщем-то тоже не мало...
alex_x_x
21.08.2010, 01:00
  #29

Не по теме:

просто это выглядит изрядно сложно, при том, что является заменой scanf'а

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2010, 01:31     Сумма цифр
Еще ссылки по теме:

C++ Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27
Рекурсия: количество цифр в числе, сумма цифр и реверс числа C++
Написать программу: сумма первых трех цифр числа равна сумме его последних трех цифр. C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.08.2010, 01:31     Сумма цифр #30
Цитата Сообщение от easybudda Посмотреть сообщение
там другой косяк - максимальное количество цифр BUFSIZ - 2
кстати, нифига! всё там нормально, просто всё, что больше, в потоке останется.
Yandex
Объявления
21.08.2010, 01:31     Сумма цифр
Ответ Создать тему
Опции темы

Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru