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

Сумма чисел - C++

Восстановить пароль Регистрация
 
the Michael
 Аватар для the Michael
3 / 3 / 0
Регистрация: 24.09.2012
Сообщений: 14
08.05.2013, 19:49     Сумма чисел #1
Здравствуйте, как написать в С++ (Dev C++), например:
C++
1
int a=123456789;
А в программе будет сложение каждого числа (1+2+3+4+5+6+7+8+9).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
edw1n
 Аватар для edw1n
7 / 7 / 1
Регистрация: 12.11.2012
Сообщений: 114
08.05.2013, 19:52     Сумма чисел #2
Цитата Сообщение от the Michael Посмотреть сообщение
Здравствуйте, как написать в С++ (Dev C++), например:
C++
1
int a=123456789;
А в программе будет сложение каждого числа (1+2+3+4+5+6+7+8+9).
Делением нацело на 10, 100, 1000 и т.д.
Когда вы делите нацело, то остаются все числа перед запятой.
К примеру чтобы получить 1 в вашем числе, то его нужно нацело поделить на 1 00 000 000.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    int n;
    int sum=0;
 
    cout << "please, enter n = ";
    cin >> n;
 
    while (n!=0)
    {
        sum += n%10;
        n /= 10;
    }
    cout << "sum = " << sum << endl;
    
    return 0;
}
the Michael
 Аватар для the Michael
3 / 3 / 0
Регистрация: 24.09.2012
Сообщений: 14
08.05.2013, 20:05  [ТС]     Сумма чисел #3
Понятно, но как бы зависит от длины строка, мало ли вдруг больше введём больше числа (больше 10 символов) а результат неправильный (выводит там 46).
Можно что-то сделать?
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
08.05.2013, 20:32     Сумма чисел #4
Цитата Сообщение от the Michael Посмотреть сообщение
Понятно, но как бы зависит от длины строка, мало ли вдруг больше введём больше числа (больше 10 символов) а результат неправильный (выводит там 46).
Можно что-то сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main()
{
 char str[255];
 cout<<"Enter number: ";
 cin>>str;
 int i=0;
 int s=0;
 while (str[i]>=48 && str[i]<=57)
 {
       if (i>0) cout<<"+";
       cout<<str[i];
       s+=str[i]-48;
       i++;
 }
 if (i>0) cout<<"="<<s<<endl; else cout<<"Error"<<endl;
 system("pause");
 return 0;
}
the Michael
 Аватар для the Michael
3 / 3 / 0
Регистрация: 24.09.2012
Сообщений: 14
08.05.2013, 20:37  [ТС]     Сумма чисел #5
Nekto, вот, то мне нужно. Благодарю.
Yandex
Объявления
08.05.2013, 20:37     Сумма чисел
Ответ Создать тему
Опции темы

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