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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Spiceofprime
4 / 4 / 0
Регистрация: 21.03.2013
Сообщений: 8
#1

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

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

Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа.
Строка должна вводиться с клавиатуры.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 10:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. (C++):

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

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

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

Дана строка, изображающая арифметическое выражение. Вывести значение - C++
помогите пожалуйста решить 1)Дана строка, изображающая арифметическое выражение вида «<циф- ра>±<цифра>±…±<цифра>», где на месте ...

С клавиатуры вводиться строчка, строка символов, вывести строку в обратном порядке. - C++
Вообщем нужно сделать 3 задачи: 1)С клавиатуры вводиться строчка, строка символов, вывести строку в обратном порядке. 2)Дан массив из N...

Дана непустая строка S и целое число N - C++
Дана непустая строка S и целое число N(>0). Вывести строку, содержащую символы строки S, между которыми вставлено по N символов (*)

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 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
Spiceofprime
4 / 4 / 0
Регистрация: 21.03.2013
Сообщений: 8
24.03.2013, 10:18  [ТС] #3
Не могли бы Вы откомментировать свою программу?Сам в си новичок,много чего не понимаю.
0
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 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
Catstail
Модератор
22613 / 10974 / 1778
Регистрация: 12.02.2012
Сообщений: 18,105
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
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 10:38 #6
Catstail, дана строка
1
Catstail
Модератор
22613 / 10974 / 1778
Регистрация: 12.02.2012
Сообщений: 18,105
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
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 12:20 #8
Catstail, опять же, ограниченная 20 символами.
1
Catstail
Модератор
22613 / 10974 / 1778
Регистрация: 12.02.2012
Сообщений: 18,105
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
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
24.03.2013, 13:12 #10
string - строка c++;
char* - строка C.

Тут выбор
0
Ev[G]eN
Эксперт С++
5097 / 1535 / 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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2013, 13:29
Привет! Вот еще темы с ответами:

Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки - C++
Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки если я ввожу 1 2 3 4 5, выводит 2 4,...

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

С клавиатуры вводится положительное натуральное число. Определить количество цифр в числе (сумму цифр) - C++
С клавиатуры вводится положительное натуральное число. Определить количество цифр в числе (сумму цифр)

Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки- не работает - C++
#include &lt;vcl.h&gt; #pragma hdrstop #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;string.h&gt; void main() { int n,i; ...


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

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

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