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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Bumer@ng
0 / 0 / 0
Регистрация: 20.08.2010
Сообщений: 69
#1

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

20.08.2010, 22:29. Просмотров 1439. Ответов 29
Метки нет (Все метки)

Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2010, 22:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма цифр (C++):

Найдите такие натуральные числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7 - C++
Помогите пожалуйста с задачей. Найдите натуральные числа такие, чтобы сумма их цифр следующего за ним числа делилась на 7. (язык С++)...

Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7 - C++
задание:"найдите простые числа такие, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7" помогите...

Определить для числа: является ли сумма его цифр двузначным числом; больше ли сумма его цифр числа "а" - C++
4.24. Дано двузначное число. Определить: а) является ли сумма его цифр двузначным числом; б) больше ли числа "a" сумма его...

Рекурсия: количество цифр в числе, сумма цифр и реверс числа - C++
Вот задание: Написать программу, которая запрашивает у пользователя целое число, на экран выводит сколько цифр в числе, их сумму и...

Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр - C++
Дано натуральное число n (n<=100). Определить сколько цифр в числе n, чему равна сумма его цифр.

Вычислить число положительных целых, меньших n, таких, что их сумма цифр равна сумме цифр в n - C++
Здравствуйте! Помогите плиз Нужно написать программу, которая по целому положительному числу n вычисляет количество положительных...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.08.2010, 23:56 #16
Ну, скажем, в самом оптимальном (и самом первом в теме) решении мы тоже не даём пользователю возможности вводить желаемое количество цифр, потому как оно ограниченно размером типа int.
Но и в таком, да и в моём решении пользователь может удалить уже введённые цифры, а в вашем он такой возможности не имеет.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
20.08.2010, 23:57 #17
функцЫя
C
1
int sum(int num) { return ( num ) ? num % 10 + sum(num / 10) : 0; }
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
20.08.2010, 23:58 #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iterator>
#include <iostream>
#include <numeric>
 
using namespace std;
 
typedef unsigned char uchar;
 
struct s_sum{
    s_sum() : isEnd(false){}
    uchar operator()(uchar sum, uchar el){
        if( !isdigit(el) ){ isEnd = true; }
        else if( !isEnd ){ return sum+el-'0'; }
        return sum;
    }
private:
    bool isEnd;
};
 
int main(){
  cout <<  (unsigned)accumulate( istream_iterator<uchar>(cin), 
                  istream_iterator<uchar>(), 0, s_sum() );
  return 0;
}
хотя сумма ограниченна, но ничего другого не придумал
half-node
21 / 18 / 3
Регистрация: 12.08.2010
Сообщений: 206
21.08.2010, 00:00 #19
Даешь многопоточную и многофайловую программу по счету суммы цифр, введенных пользователем!

Добавлено через 44 секунды
Цитата Сообщение от silent_1991 Посмотреть сообщение
Ну, скажем, в самом оптимальном (и самом первом в теме) решении мы тоже не даём пользователю возможности вводить желаемое количество цифр, потому как оно ограниченно размером типа int.
Но и в таком, да и в моём решении пользователь может удалить уже введённые цифры, а в вашем он такой возможности не имеет.
Ваше ... слаще! Не спорю. Оставим полемику на данную тему
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.08.2010, 00:06 #20
half-node,
Извините, не выдержал))) Ещё у вас есть возможность ввести в качестве цифры число, состоящее из более чем одной цифры, что не есть гуд))) Вот теперь закончим)))
outoftime
║XLR8║
509 / 431 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
21.08.2010, 00:14 #21
CyBOSSeR, Извените, в силу своей необразованости не понял о чем вы говорили здесь:
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Оператор следования (,) использовать подобным образом вообще не стоит.
easybudda, Зачет
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
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++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.08.2010, 00:37 #23
Цитата Сообщение от outoftime Посмотреть сообщение
Извените, в силу своей необразованости не понял о чем вы говорили здесь
Оператор следования - запятая. Не стоит с ним переусердствовать.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
21.08.2010, 00:41 #24
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
if ( *p
это условие никогда не сработает, так как перед этим выкинет из цикла
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
isdigit(*p)
те лишнее условие
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.08.2010, 00:42 #25
alex_x_x,
Вроде как это условие стоит после цикла, а не внутри него...
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
21.08.2010, 00:44 #26
а да, все верно, привык везде кавычки ставить
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
21.08.2010, 00:45 #27
alex_x_x,
Аналогично, но пришлось переучиваться - слишком громоздко выходило)))
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
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'а

easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,608
21.08.2010, 01:31 #30
Цитата Сообщение от easybudda Посмотреть сообщение
там другой косяк - максимальное количество цифр BUFSIZ - 2
кстати, нифига! всё там нормально, просто всё, что больше, в потоке останется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2010, 01:31
Привет! Вот еще темы с ответами:

Дано натурально число n. Сколько цифр в этом числе. Чему равняется сумма цифр. Найти первую цифру - C++
Желательно в С

Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу - C++
Требуется помощь.. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому...

Найти все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27 - C++
найти все четырёхзначные числа , у которых сумма крайних цифр равна сумме средних цифр , а само число делится на 6 и 27 . В С++

Определить равна ли сумма k цифр дробной части заданного вещественного числа сумме цифр целой части - C++
Помогите доделать задание, исправьте пожалуйста код!!! Срочно! Задание: Выполнить задания, выделяя цифры числа, хранящегося в переменной...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.08.2010, 01:31
Ответ Создать тему
Опции темы

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