Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14

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

28.05.2012, 19:28. Показов 2019. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, уважаемые форумчане!
Просьба помощи в написании программы на С++
нужно написать программу, которая подсчитывает сумму всех чисел в строке.

сам написал только:
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;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2012, 19:28
Ответы с готовыми решениями:

Найти суму чисел встречающихся в строке
Найти суму чисел встречающихся в строке: &quot;Текст: 2013 букв 150 или 350&quot;

Подсчитайте количество чисел, встречающихся в первой строке, но не встречающихся во второй
Ограничение по времени работы программы: 1 секунда В текстовом файле две строки. В каждой строке записаны какие-то числа через пробел....

Найти сумму чисел (положительных и отрицательных), встречающихся в строке
Дана строка символов. Найти сумму цифр(Положительные и отрицательные), встречающихся в строке.Си

10
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
28.05.2012, 19:38
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;
}
1
 Аватар для igorrr37
2895 / 2042 / 992
Регистрация: 21.12.2010
Сообщений: 3,791
Записей в блоге: 9
28.05.2012, 19:45
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;
}
0
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19
28.05.2012, 19:50
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;
}
1
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 19:58  [ТС]
Цитата Сообщение от Andrey.K Посмотреть сообщение
if(s[i]>47 && s[i]<58) count++;
почему именно > 47 и < 58 ?
программа подсчитывает результат и в итоге получается 16.

Добавлено через 2 минуты
Цитата Сообщение от \\max Посмотреть сообщение
m = strlen(st);
Dev-C++ ругается на эту строчку...
0
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
28.05.2012, 19:59
Цитата Сообщение от kavss Посмотреть сообщение
почему именно > 47 и < 58 ?
программа подсчитывает результат и в итоге получается 16.
По твоему предложению у меня ответ 6 как и дожно быть. Программа работает правильно. А там где сравнивается в диапазоне , так это в таблце ASCII значения цифр от 0 до 9.
Я компили на VS2010, и проверил сейчас на DevC++ всё работает. Перепроверьте или вы всё правильно сделали.
0
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 20:04  [ТС]
Цитата Сообщение от Andrey.K Посмотреть сообщение
По твоему предложению у меня ответ 6 как и дожно быть. Программа работает правильно. А там где сравнивается в диапазоне , так это в таблце ASCII значения цифр от 0 до 9.
Я компили на VS2010, и проверил сейчас на DevC++ всё работает. Перепроверьте или вы всё правильно сделали.
про диапазон понял.
по счет программы - нужно подсчитать не количество чисел, а сумму этих чисел --- 1993 + 19.
0
 Аватар для Andrey.K
348 / 269 / 128
Регистрация: 14.11.2010
Сообщений: 482
28.05.2012, 20:11
Цитата Сообщение от kavss Посмотреть сообщение
про диапазон понял.
по счет программы - нужно подсчитать не количество чисел, а сумму этих чисел --- 1993 + 19.
Сорри, не так задание понял
0
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
28.05.2012, 20:12  [ТС]
Цитата Сообщение от \\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. но только мне нужно подсчитать не сумму цифр, а сумма чисел в строке.
0
 Аватар для \\max
4 / 4 / 0
Регистрация: 19.05.2012
Сообщений: 19
28.05.2012, 21:20
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;
}
готово)
2
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 14
29.05.2012, 22:15  [ТС]
Отдуши душевно в душу!)
хоть и компилятор ругается:
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'
но все равно запускает программу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2012, 22:15
Помогаю со студенческими работами здесь

Вставить в строке знак «!» после символов, принадлежащих множеству и встречающихся в строке 2 раза
3)Дана строка и множество символов. Вставить в строке знак «!» после символов, принадлежащих множеству и встречающихся в строке 2 раза.

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

Сумма чисел в строке
Задана строка, содержащая целые числа и слова, разделенные пробелами (одним или несколькими). Определить сумму целых чисел в строке. ...

Сумма отдельных чисел в строке
Задано случайная строка . Подсчитать сумму отдельных чисел в строке

Сумма всех чисел в строке
Сумма всех чисел в строке. Кто нибудь может это транслировать на C++ #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru