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

сумма чисел встречающихся в строке - C++

Восстановить пароль Регистрация
 
kavss
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 19:28     сумма чисел встречающихся в строке #1
Добрый вечер, уважаемые форумчане!
Просьба помощи в написании программы на С++
нужно написать программу, которая подсчитывает сумму всех чисел в строке.

сам написал только:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <cstring>
#include <cctype>
 
using namespace std;
 
int main()
{
char* st = "I born in 1993 year. Now me 19.";
cout<<"Входная строка: "<<st<<endl;
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
28.05.2012, 19:38     сумма чисел встречающихся в строке #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    char s[]="I born in 1993 year. Now me 19.";
    int size=strlen(s),count=0;
    for(int i=0;i<size;i++)
    {
        if(s[i]>47 && s[i]<58) count++;
    }
    cout<<"Answer is "<<count<<endl;
    getch();
    return 0;
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
28.05.2012, 19:45     сумма чисел встречающихся в строке #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
#include <iterator>
 
int main()
{
    std::string s("I was born in 1993. Now I am 19.");
    std::replace_if(s.begin(), s.end(), [](char c){return !std::isdigit(c);}, ' ');
    std::istringstream iss(s);
    std::cout << std::accumulate((std::istream_iterator<std::size_t>(iss)), std::istream_iterator<std::size_t>(), 0) << std::endl;
    return 0;
}
\\max
 Аватар для \\max
4 / 4 / 1
Регистрация: 19.05.2012
Сообщений: 19
28.05.2012, 19:50     сумма чисел встречающихся в строке #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    int sum = 0;
    char st[] = "I born in 1993 year. Now me 19.";
    int m;
    m = strlen(st);
    for(int i=0;i < m;i++)
    {
        if(isdigit(st[i])) sum += st[i] -48 ;
    }
    printf("%d",sum);
    getch();
    return 0;
}
kavss
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 19:58  [ТС]     сумма чисел встречающихся в строке #5
Цитата Сообщение от Andrey.K Посмотреть сообщение
if(s[i]>47 && s[i]<58) count++;
почему именно > 47 и < 58 ?
программа подсчитывает результат и в итоге получается 16.

Добавлено через 2 минуты
Цитата Сообщение от \\max Посмотреть сообщение
m = strlen(st);
Dev-C++ ругается на эту строчку...
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
28.05.2012, 19:59     сумма чисел встречающихся в строке #6
Цитата Сообщение от kavss Посмотреть сообщение
почему именно > 47 и < 58 ?
программа подсчитывает результат и в итоге получается 16.
По твоему предложению у меня ответ 6 как и дожно быть. Программа работает правильно. А там где сравнивается в диапазоне , так это в таблце ASCII значения цифр от 0 до 9.
Я компили на VS2010, и проверил сейчас на DevC++ всё работает. Перепроверьте или вы всё правильно сделали.
kavss
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 20:04  [ТС]     сумма чисел встречающихся в строке #7
Цитата Сообщение от Andrey.K Посмотреть сообщение
По твоему предложению у меня ответ 6 как и дожно быть. Программа работает правильно. А там где сравнивается в диапазоне , так это в таблце ASCII значения цифр от 0 до 9.
Я компили на VS2010, и проверил сейчас на DevC++ всё работает. Перепроверьте или вы всё правильно сделали.
про диапазон понял.
по счет программы - нужно подсчитать не количество чисел, а сумму этих чисел --- 1993 + 19.
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
28.05.2012, 20:11     сумма чисел встречающихся в строке #8
Цитата Сообщение от kavss Посмотреть сообщение
про диапазон понял.
по счет программы - нужно подсчитать не количество чисел, а сумму этих чисел --- 1993 + 19.
Сорри, не так задание понял
kavss
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 20:12  [ТС]     сумма чисел встречающихся в строке #9
Цитата Сообщение от \\max Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    int sum = 0;
    char st[] = "I born in 1993 year. Now me 19.";
    int m;
    m = strlen(st);
    for(int i=0;i < m;i++)
    {
        if(isdigit(st[i])) sum += st[i] -48 ;
    }
    printf("%d",sum);
    getch();
    return 0;
}
программа работает, компилил на Dev-C++ , просто до этого не была подключена библиотека iostream. но только мне нужно подсчитать не сумму цифр, а сумма чисел в строке.
\\max
 Аватар для \\max
4 / 4 / 1
Регистрация: 19.05.2012
Сообщений: 19
28.05.2012, 21:20     сумма чисел встречающихся в строке #10
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
33
34
35
36
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <cstring>
#include <cctype>
 
using namespace std;
 
int main()
{
    int sum = 0;
    int number = 0;
    int k = 0;
    char st[] = "I born in 1993 year. Now me 19.";
    int m;
    m = strlen(st);
    for(int i = m; i > 0 ; i--)
    {
        if(isdigit(st[i])) 
        {   
            number = (st[i]-48);
            for(k = 1; k < m ;k++)
            {
                if(isdigit(st[i-1]))
                {
                    number += (st[i-1]-48)*(pow(10,k));
                    i--;
                }
            }
            sum += number;          
        }   
    }
    printf("%d",sum);
    getch();
    return 0;
}
готово)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2012, 22:15     сумма чисел встречающихся в строке
Еще ссылки по теме:

C++ В строке найти количество встречающихся рядом символов соседних по алфавиту
Вывести 10 наиболее часто встречающихся чисел C++
C++ Программа, которая считает количество парных(встречающихся 2 раза) символов в строке

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

Или воспользуйтесь поиском по форуму:
kavss
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
29.05.2012, 22:15  [ТС]     сумма чисел встречающихся в строке #11
Отдуши душевно в душу!)
хоть и компилятор ругается:
C:\Documents and Settings\Admin\Мои документы\Безымянный77.cpp In function `int main()': 26 C:\Documents and Settings\Admin\Мои документы\Безымянный77.cpp [Warning] converting to `int' from `double'
но все равно запускает программу.
Yandex
Объявления
29.05.2012, 22:15     сумма чисел встречающихся в строке
Ответ Создать тему
Опции темы

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