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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
#1

Вывести сумму цифр числа - C++

17.11.2011, 16:41. Просмотров 1973. Ответов 20
Метки нет (Все метки)

смысл задачи такой : мы вводим двузначное число ,нужно вывести сумму его цифр ,если сумма цифр снова двузначное число ,то снова складываем эти цифры ,и так до тех пор ,пока не получится однозначное цисло .И еще ,нужно вывести количество операций которые мы выполняем при этом вот пример : вводим 10 выводится 1 0
вводим 88 выводится 7 2

большая просьба решить через string ,
 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 16:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести сумму цифр числа (C++):

От данного числа N вычтем сумму цифр этого числа, от полученного числа опять вычтем сумму цифр и т.д. до тех пор, пока число положительно - C++
И опять: сколько можно? Задано натуральное число N. От данного числа вычтем сумму цифр этого числа, от полученного числа опять...

Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое число, количес - C++
Дана последовательность n натуральных чисел. Для каждого числа вычислить количество его цифр и сумму этих цифр. Вывести на экран каждое...

Вывести сумму цифр числа - C++
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.

Вывести на экран сумму цифр данного числа - C++
1.Вводятся двузначное чиcло. Вывести на экран сумму цифр данного числа.

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

Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр - C++
Вывести все 6-ти значные числа, которые делятся без остатка на сумму своих цифр. подсчитать кол-во Решаю ее в таком ключе, подскажите,...

20
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,983
17.11.2011, 16:42 #2
а к чему тут стринг то?
0
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 17:00  [ТС] #3
такое задание

Добавлено через 12 минут
так что с задачей?
0
mc.Duck
Заблокирован
17.11.2011, 18:12 #4
im_Kudrik, вот код:
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
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
#include <clocale>
using namespace std;
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
    char chom[]="";
    string chomp="";
    cout<<"Ââåäèòå ÷èñëî: ";cin>>chom;
    int *mass=new int[strlen(chom)];
    int len=strlen(chom);
    for(int i=0;i<=len-1;i++)
    {
            chomp=chomp+chom[i]+'k';
            }
    int sum=0;
    cout<<endl;
    for(int i=0;i<=strlen(chom)*2-1;i+=2)
    {
            mass[i]=atoi(&chomp[i]);
            cout<<mass[i]<<"  "; 
            sum+=mass[i]; 
            }
            cout<<endl;
            cout<<endl;
            cout<<"ÑóììГ* ГўГ±ГҐГµ Г·ГЁГ±ГҐГ« = "<<sum<<endl;
            cout<<endl;
            cout<<endl;
        system ("pause");
}
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.11.2011, 18:17 #5
Цитата Сообщение от mc.Duck Посмотреть сообщение
C++
1
2
    char chom[]="";
    cin>>chom;
Ну вы и весельчак Сами хоть тестировали свою программу?
0
mc.Duck
Заблокирован
17.11.2011, 18:31 #6
Thinker, да..а что?)))
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.11.2011, 18:36 #7
Цитата Сообщение от mc.Duck Посмотреть сообщение
Thinker, да..а что?)))
как вы умудряетесь вводить что-то в пустую строку, вернее, в одноэлементный массив?
0
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 18:40  [ТС] #8
и в правду ,вывело не то что надо.но все равно спасибо за помощь =)
0
mc.Duck
Заблокирован
17.11.2011, 18:43 #9
Thinker, вообще-то chom[] тоже самое, что и *сhom .
Это абсолютно одинаковое объявление динамического массива.

Добавлено через 1 минуту
im_Kudrik, да, вохможно я намудрил. Попробуйте так:
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
25
26
27
28
29
30
31
32
#include <iostream>
#include <string>
#include <clocale>
using namespace std;
 
int main(void)
{
    setlocale(LC_ALL,"Russian");
    char chom[99];
    string chomp="";
    cout<<"Ââåäèòå ÷èñëî: ";cin>>chom;
    int *mass=new int[strlen(chom)];
    int len=strlen(chom);
    for(int i=0;i<=len-1;i++)
    {
            chomp=chomp+chom[i]+'k';
            }
    int sum=0;
    cout<<endl;
    for(int i=0;i<=strlen(chom)*2-1;i+=2)
    {
            mass[i]=atoi(&chomp[i]);
            cout<<mass[i]<<"  "; 
            sum+=mass[i]; 
            }
            cout<<endl;
            cout<<endl;
            cout<<"ÑóììГ* ГўГ±ГҐГµ Г·ГЁГ±ГҐГ« = "<<sum<<endl;
            cout<<endl;
            cout<<endl;
        system ("pause");
}
0
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.11.2011, 18:55 #10
Цитата Сообщение от mc.Duck Посмотреть сообщение
Thinker, вообще-то chom[] тоже самое, что и *сhom .
Это абсолютно одинаковое объявление динамического массива.
Что я могу сказать, ужас и только... Одно дело, когда вы функцию так описываете, а другое, когда определяете... Вы путаете массивы и указатели.
Кому то ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ нужно книжки почитать.
1
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,983
17.11.2011, 18:59 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
25
26
#include <iostream>
#include <string>
#include <sstream>
 
int main() {
    std::string str;
    std::cin >> str;
    std::stringstream ss;
    int cnt = 0;
    int temp;
 
    while (++cnt) {
        temp = (str[0] - '0') + (str[1] - '0');
        if (temp > 9) {
            ss << temp;
            ss >> str;
            ss.clear();
        }
        else
            break;
    }
 
    std::cout << temp << " " << cnt;
    std::cout << std::endl;
    return 0;
}
что-то лучше в голову не пришло)
0
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 19:23  [ТС] #12
хм ,и сново не то!сумму цифр числа я могу вывести ,но задание другое...прочтите именно условие ,а не только заголовок
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,983
17.11.2011, 19:29 #13
ок да?
0
Миниатюры
Вывести сумму цифр числа  
Thinker
Эксперт С++
4227 / 2201 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
17.11.2011, 19:32 #14
Вариант без string:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int SumDigits(int a)
{
   return a ? a%10 + Sum(a/10) : 0;
}
 
int Sum(int a)
{
    int s = a;
    while (abs(s = SumDigits(s)) >= 10)
       ;
    return s;
}
 
int main()
{
    int a;
    scanf("%d", &a);
    printf("%d\n", Sum(a));
    return 0;
}
0
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
17.11.2011, 19:34  [ТС] #15
neske ,спасибо большое ,но что если вводить трехзначное число ?или четырехзначное?и можно объяснить вот это
C++
1
2
3
4
5
6
7
while (++cnt) {
            temp = (str[0] - '0') + (str[1] - '0');
            if (temp > 9) {
            ss << temp;
            ss >> str;
            ss.clear();
        }
0
17.11.2011, 19:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2011, 19:34
Привет! Вот еще темы с ответами:

Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа - C++
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.(используя указатели и функции)

Найти сумму делитей. Подсчитать сумму цифр числа. Количество цифр - C++
Друзья,подскажите пожалуйста где ошибка?Цикл не считает сумму делителей числа. #include &lt;iostream&gt; using namespace std; void...

Используя арифметические операции, определить и вывести сумму цифр трехзначного целого числа k (100<=k<=255) - C++
1)осуществить: - проверку корректности по типу вводимых значений; - проверку диапазонов вводимых значений. -Используя...

Дано натуральное число N. Найти и вывести все числа в интервале от 1 до N-1, у которых произведение цифр совпадает с произведением цифр данного числа - C++
Помогите, пожалуйста!!! А то у меня не получается( Написал программу, когда ввожу число 32 как в примере выводит только 16, а 6 и 23 не...


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

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

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