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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Spiceofprime
4 / 4 / 0
Регистрация: 21.03.2013
Сообщений: 8
24.03.2013, 10:04     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #1
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.
Строка должна вводиться с клавиатуры.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 10:04     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры.
Посмотрите здесь:

C++ С клавиатуры вводиться строчка, строка символов, вывести строку в обратном порядке.
Дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа C++
. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа C++
C++ Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки
C++ Дана строка, изображающая арифметическое выражение. Вывести значение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
24.03.2013, 10:11     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #2
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
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main() {
    setlocale(0,"");
 
    string num;
    cin >> num;
 
    for(int i = 0; i < num.size(); ++i) {
        if(num[i] < '0' || num[i] > '9') {
            cout << "Число введено некорректно";
 
            return 0;
        }
    }
 
    int summ = 0;
 
    for(int i = 0; i < num.size(); ++i) {
        summ += (num[i] - '0');
    }
 
    cout << summ;
}
Spiceofprime
4 / 4 / 0
Регистрация: 21.03.2013
Сообщений: 8
24.03.2013, 10:18  [ТС]     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #3
Не могли бы Вы откомментировать свою программу?Сам в си новичок,много чего не понимаю.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
24.03.2013, 10:25     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #4
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
#include <iostream> //подключение библиотеки ввода-вывода
#include <cstring> //подключение библиотеки для работы со строками string
 
using namespace std; //использовать пространство имен std (чтобы не писать std::cout)
 
int main() { //главная функция (с нее начинается работа программы)
    setlocale(0,""); //русский язык в консоли
 
    string num; //объявление строки типа string с именем num
    cin >> num; //запрос на ввод строки num
 
    for(int i = 0; i < num.size(); ++i) { //цикл (пробегаем по всей строке)
        if(num[i] < '0' || num[i] > '9') { //проверка на цифру (если символ в строке не цифра, то завершаем программу)
            cout << "Число введено некорректно"; //вывод сообщения в консоль (произойдет, если не цифра)
 
            return 0; //завершение работы программы
        }
    }
 
    int summ = 0; //объявление переменной summ (сумма) со значением 0
 
    for(int i = 0; i < num.size(); ++i) { //опять пробегаем по строке
        summ += (num[i] - '0'); //изменение значения переменной summ
    }
 
    cout << summ; //Вывод summ (суммы) в консоль
 
    return 0;//завершение работы программы
}
Catstail
Модератор
 Аватар для Catstail
21492 / 10245 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
24.03.2013, 10:30     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #5
или так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
 
int sumdig(int n)
{
    if (n < 10)
        return n;
    else
        return (n % 10)+sumdig(n / 10);
}
 
int main(int argc, char* argv[])
{
    int k;
    cout << "Enter number: ";
    cin >> k;
    cout << "Sum of digits is " << sumdig(k) << endl;
 
    return 0;
}
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
24.03.2013, 10:38     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #6
Catstail, дана строка
Catstail
Модератор
 Аватар для Catstail
21492 / 10245 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
24.03.2013, 12:17     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #7
Нет проблем:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include <stdlib.h>
 
int sumdig(int n)
{
    if (n < 10)
        return n;
    else
        return (n % 10)+sumdig(n / 10);
}
 
 
int main(int argc, char* argv[])
{
    char S[20];
    int k;
    for (k=0; k<20; k++) S[k]=0;
    cout << "Enter number: ";
    cin >> S;
    cout << "Sum of digits is " << sumdig(atoi(S)) << endl;
 
    return 0;
}
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
24.03.2013, 12:20     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #8
Catstail, опять же, ограниченная 20 символами.
Catstail
Модератор
 Аватар для Catstail
21492 / 10245 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
24.03.2013, 13:08     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #9
На самом деле даже не двадцатью, а меньше (тип int имеет ограничение). Но если исходить из того, что "дана строка", то можно предложить похожее решение...

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
int sumdig(char * s, int l)
{
    if (l == 1)
        return s[0]-48;
    else
        return (s[0]-48)+sumdig(s+1,l-1);
}
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
24.03.2013, 13:12     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #10
string - строка c++;
char* - строка C.

Тут выбор
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 13:29     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры.
Еще ссылки по теме:

C++ Ввести произвольное целое положительное число. Определить число с обратным порядком цифр заданного числа
C++ Дана непустая строка S и целое число N
C++ Ввести с клавиатуры целое положительное число и вывести на экран сумму его цифр

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

Или воспользуйтесь поиском по форуму:
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
24.03.2013, 13:29     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. #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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <numeric>
#include <cstring>
 
int main ()
{
    std::string strNumber;
    std::cin >> strNumber;
 
    int countOfDigits = std::count_if(strNumber.begin(), strNumber.end(), [] (char currChar) -> bool {
        return isdigit(currChar);
    });
    if (countOfDigits == strNumber.length())
        std::cout << "Sum: " << std::accumulate(strNumber.begin(), strNumber.end(), 0, [] (unsigned sum, char currChar) -> unsigned {
            return sum += currChar - '0';
        }) << std::endl;
    else
        std::cout << "String is not correct!" << std::endl;
 
    return 0;
}
Yandex
Объявления
24.03.2013, 13:29     дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры.
Ответ Создать тему
Опции темы

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