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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
levi
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 9
#1

Найти сумму простых чисел в строке. - C++

05.05.2011, 20:50. Просмотров 1111. Ответов 3
Метки нет (Все метки)

Например: vbdfgdfsf2fsggbvb fgdf3fdgf 234fg gdfgd199
Результат:204
Вот код, который я написал (но результат выводит неверный):
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
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <ctype.h>
#define n 1000
 
unsigned int prostoe (unsigned int N)
{
 int i,pr;
  for (pr=1,i=2;i<=N/2;i++)
   if (N%i==0)
    {
     pr=0;
     break;
    }
return pr;
}
 
int main()
{
    clrscr();
    unsigned char s[n];
        unsigned int i=0,num=0,sum=0;
    char c;
    cout << "Vvedite stroku: ";
    while ((c=getchar())!='\n')
        s[i++]=c;
    for (i=0;(i<n)&&(s[i]!='\0');i++)
     {
        if ((s[i]==' ')||(s[i]=='\t')||(s[i]=='\n')||(isdigit(s[i])==0))
 
           if  (prostoe(num))
            {
              sum+=num;
              num=0;
            }
        else
          if ((s[i]>='0')&&(s[i]<='9'))
            num=num*10+(s[i]-'0');
 
      }
    cout << "Summa prostbIx chisel = "<<sum;
    getchar();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 20:50     Найти сумму простых чисел в строке.
Посмотрите здесь:

Найти сумму простых чисел в строке - C++
Ребят,очень нужно сделать,помогите пожалуйста Дана строка до точки, группа символов в которой между пробелами считается словом, ...

Массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него - C++
массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него.

Найти сумму простых чисел в массиве - C++
#include &lt;cstdio&gt; bool even (int arr_i) { bool flag = 1; for (int k = 2; k*k &lt;= arr_i; k++) { if...

Найти сумму простых чисел в массиве - C++
Найти ошибку (найти сумму простых чисел в массиве) П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других...

Найти сумму всех простых чисел в интервале от 0 до 1000000 - C++
Есть программка считающая сумму всех простых чисел от 0 до 1 млн. Но результат выдает не правильно. Если вместо млн уменьшаешь диапазон до...

Найти максимальную сумму чисел в одной строке и вывести на экран эту сумму и номер строки - C++
2) Если в условиях задачи сказано &quot;Дан двумерный массив&quot;, то программа получает на вход два числа n и m, являющиеся числом строк и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
05.05.2011, 21: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
28
29
30
31
32
#include <iostream>
#include <sstream>
#include <algorithm>
#include <locale>
#include <string>
 
bool Is_Prime (const int num)
{
    for (int i = 2; i <= num / 2; i++)
        if (!(num % i))
            return false;
 
    return true;
}
 
int main()
{
    std::string str = ("vbdfgdfsf2fsggbvb fgdf3fdgf 234fg gdfgd199");
    std::replace_if (str.begin(), str.end(), [] (const char ch) -> bool {return (!isdigit (ch)); }, ' ');
    std::istringstream ist (str);
 
    int sum = 0, temp;
    while (ist >> temp) {
        if (Is_Prime (temp))
            sum += temp;
    }
 
    std::cout << "Sum: " << sum;
    std::cout << std::endl;
 
    return 0;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
05.05.2011, 21:23     Найти сумму простых чисел в строке. #3
neske, тут, кстате, ламбду можно и не юзать
C++
1
std::replace_if (str.begin(), str.end(), std::not1(std::ptr_fun(isdigit)), ' ');
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2011, 21:25     Найти сумму простых чисел в строке.
Еще ссылки по теме:

В заданной символьной строке, состоящей из букв и чисел, найти сумму чисел - C++
2. Задана символьная строка, состоящая из букв и чисел. Напечатать сумму чисел.

Найти сумму чисел в строке - C++
Условие: В строковую переменную через пробел записаны числа. Найти их сумму и преобразовать строку к виду: Число + Число +...+ Число =...

Найти сумму чисел в строке - C++
Помогите найти сумму чисел в строке в Microsoft Visual Studio C++ Пока еще плохо знаю как программировать...так что если можно распишите...

Как найти сумму чисел в строке? - C++
Как найти сумму чисел в строке???не через функции, через char??

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

Найти сумму чисел в строке, введённой пользователем - C++
Здравствуйте, я пытаюсь решить некоторые задачи по C++, но не все получаются. Одна из задач - найти сумму чисел в строке, введённой...


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

Или воспользуйтесь поиском по форуму:
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
05.05.2011, 21:25     Найти сумму простых чисел в строке. #4
А я не знал что так можно, спасибо)
Yandex
Объявления
05.05.2011, 21:25     Найти сумму простых чисел в строке.
Ответ Создать тему
Опции темы

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