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

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

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

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

05.05.2011, 20:50. Просмотров 1092. Ответов 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++
C++ Найти сумму чисел в строке
Массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него C++
Найти сумму простых чисел в массиве C++
Найти количество простых чисел в массиве. Перевернуть все нечетные строки матрицы. Перевернуть каждое четное слово в строке C++
Найти сумму чисел в строке, введённой пользователем C++
C++ Найти максимальную сумму чисел в одной строке и вывести на экран эту сумму и номер строки
C++ Найти сумму всех простых чисел в интервале от 0 до 1000000
Найти сумму простых чисел в строке C++
В заданной символьной строке, состоящей из букв и чисел, найти сумму чисел C++
C++ Найти и вывести сумму всех дробных чисел в строке
C++ Найти сумму чисел содржащихся в символьной строке

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
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
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.05.2011, 21:23     Найти сумму простых чисел в строке. #3
neske, тут, кстате, ламбду можно и не юзать
C++
1
std::replace_if (str.begin(), str.end(), std::not1(std::ptr_fun(isdigit)), ' ');
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
05.05.2011, 21:25     Найти сумму простых чисел в строке. #4
А я не знал что так можно, спасибо)
Yandex
Объявления
05.05.2011, 21:25     Найти сумму простых чисел в строке.
Ответ Создать тему
Опции темы

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