4 / 4 / 0
Регистрация: 21.03.2013
Сообщений: 8
1

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

24.03.2013, 10:04. Показов 7723. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.
Строка должна вводиться с клавиатуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2013, 10:04
Ответы с готовыми решениями:

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

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

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

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

10
CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 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;
}
1
4 / 4 / 0
Регистрация: 21.03.2013
Сообщений: 8
24.03.2013, 10:18  [ТС] 3
Не могли бы Вы откомментировать свою программу?Сам в си новичок,много чего не понимаю.
0
CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 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;//завершение работы программы
}
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37124 / 20574 / 4249
Регистрация: 12.02.2012
Сообщений: 33,930
Записей в блоге: 14
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;
}
0
CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
24.03.2013, 10:38 6
Catstail, дана строка
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
37124 / 20574 / 4249
Регистрация: 12.02.2012
Сообщений: 33,930
Записей в блоге: 14
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;
}
0
CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
24.03.2013, 12:20 8
Catstail, опять же, ограниченная 20 символами.
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
37124 / 20574 / 4249
Регистрация: 12.02.2012
Сообщений: 33,930
Записей в блоге: 14
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);
}
0
CEO SOVAZ Corp.
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
24.03.2013, 13:12 10
string - строка c++;
char* - строка C.

Тут выбор
0
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
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;
}
0
24.03.2013, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2013, 13:29
Помогаю со студенческими работами здесь

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

Задача №647. Дана строка, изображающая целое число. Вывести сумму цифр этого числа
Задача №647. Дана строка, изображающая целое число. Вывести сумму цифр этого числа.

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

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

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

Дана строка S, изображающая вещественное число в формате с плавающей точкой, и целое число N (N>0)
2. Дана строка S, изображающая вещественное число в формате с плавающей точкой, и целое число N...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru