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

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

Войти
Регистрация
Восстановить пароль
 
Kastofan
0 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 4
#1

Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму - C++

20.11.2012, 11:49. Просмотров 907. Ответов 10
Метки нет (Все метки)

Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 11:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить, есть ли в заданном предложении цифры. И если есть, найти их сумму (C++):

Определить, есть ли в заданном натуральном числе указанные цифры - C++
В школе задали, кто знает как решить ? Спасибо. Дано натуральное число. Определить, есть ли в нем цифры а и b.

Определить: а) Есть ли в нем цифра 3; б) Есть ли цифры 2 и 5 - C++
Всем привет! Помогите сделать программку в с++, условие: Дано натуральное число. Определить: а) Есть ли в нем цифра 3; б) Есть ли цифры 2...

Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму - C++
Проблема с заданием. Дан одномерный массив. Узнать, есть ли среди них элементы с нечетными номерами, которые кратны 17, и если есть,...

Определить, есть ли такая фирма, у которой все 5 лет наблюдался рост производства и, если есть, то каков её номер - C++
Имеется таблица с данными об объёме производства 10 фирм за 5 лет. Определить, есть ли такая фирма, у которой все 5 лет наблюдался рост...

В предложении S1 найти все слова, которые есть в предложении S2 - C++
Здравствуйте. Не как не могу доделать программу. #include <iostream> #include <string.h> using std::cout; using std::cin; int...

В предложении удалить первое вхождение “w”, если такое есть - C++
Как можно выполнить это задание с помощью строк?? В предложении удалить первое вхождение “w”, если такое есть. Образовавшуюся “дыру”...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 12:31 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream> 
 
int main() 
{   
  char str[] = "asasdasd1asdsadas2sadsad3asdas4t"; 
  int size = strlen(str); 
  int i; 
  int sum = 0; 
 
  for ( i = 0; i < size; ++i) 
      if(isdigit(str[i])) 
          sum = sum + atoi(&str[i]); 
  std::cout << "Summa is " << sum << std::endl;
}
0
Betokuha
32 / 29 / 9
Регистрация: 05.03.2012
Сообщений: 114
20.11.2012, 12:38 #3
David Sylva, можете обяснить эти функции? isdigit, atoi
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 12:42 #4
Почитай там всё понятно изложено.
isdigit http://www.cplusplus.com/reference/c...ctype/isdigit/
atoi http://www.cplusplus.com/reference/c.../cstdlib/atoi/
1
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,471
20.11.2012, 13:19 #5
David Sylva, строка "А123" даст по вашему алгоритму 149. А должна дать 6
C
1
  if (str[i] <='9' && str[i]>='0') { sum += str[i] - '0'; flagCifr = 1; }
(цифры могут быть, а их сумма == 0)
2
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 13:53 #6
Байт спасибо, автору темы предлагаю вот такой код
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> 
 
int main() 
{   
  char str[] = "A123"; 
  int size = strlen(str); 
  int i, number, x;
  int sum = 0; 
 
  for ( i = 0; i < size; ++i) 
      if(isdigit(str[i])) 
      {
         number = atoi(&str[i]); 
         while(number) 
         { 
             if(number / 10 == 0) 
                 x = number; 
             number /= 10; 
         } 
         sum += x; 
      } 
      std::cout << "Sum is " << sum << std::endl;
}
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,471
20.11.2012, 14:09 #7
David Sylva, Увы! Так получится 12. Давайте попробуем так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream> 
 int main() 
{   
  char str[] = "A123"; 
  int size = strlen(str); 
  int i;
  int sum = 0, Flag=0; 
 
  for ( i = 0; i < size; ++i) 
      if(isdigit(str[i]))   {
         sum += str[i] - '0';
         Flag = 1;
      } 
   }
      if (Flag) {
        std:;cout << "Цифры есть" << std:;endl;
        std::cout << "Sum is " << sum << std::endl;
      }
       else std;;cout<< "Цифр нет" << std::endl;
}
Betokuha,
Макрос isdigit(a) проверяет, является ли символ a цифрой.
Одно из возможных определений
C
1
 #define isdigit(a) ('0' <= a && a <='9') ? 1 : 0;
Добавлено через 3 минуты
David Sylva, Извиняюсь. У вас все правильно. Я не обратил внимания, что вы берете старшую цифру. Но и мой код как-будто должен работать...
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 14:10 #8
Цитата Сообщение от Байт Посмотреть сообщение
David Sylva, Извиняюсь. У вас все правильно. Я не обратил внимания, что вы берете старшую цифру. Но и мой код как-будто должен работать...

Не по теме:

А я уже хотел возмущаться

0
Lermontove
2 / 2 / 0
Регистрация: 20.11.2012
Сообщений: 5
20.11.2012, 16:00 #9
Я новичок в программировании,но у меня вышел такой код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include "iostream"
 
using namespace std;
int main()
{
    char *s = "ABC999";
    int a=0;
    while(*s)
    {
    if(*s >= '0' && *s <='9')
    {
        a = ((*s)-'0')+a;
    }
    s++;
    }
    cout << a;
    getchar();
    return 0;
}
Рационален?
1
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
20.11.2012, 16:21 #10
Цитата Сообщение от Lermontove Посмотреть сообщение
Рационален?
Да вполне.
0
Kastofan
0 / 0 / 0
Регистрация: 20.11.2012
Сообщений: 4
27.11.2012, 19:40  [ТС] #11
всем огромное спасибо!)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 19:40
Привет! Вот еще темы с ответами:

Есть натуральное число n. Проверить, есть ли в том числе 3 одинаковых цифры - C++
Помогите реализировать 2 задания при с использованием указателей. Я коды написал, но не уверен в их правельности и рациональности. ...

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

Определить, есть ли в заданном массиве мажоруючий элемент - C++
Мажоруючим элементом массива A назовем элемент, который встречается в NN / 2 массиве более раз. Определить, есть ли в заданном массиве...

В пятиугольнике, заданном координатами своих вершин, подсчитать количество прямых углов (если они есть). - C++
1. В пятиугольнике, заданном координатами своих вершин, подсчитать количество прямых углов (если они есть). 2. Рассмотреть указанную...


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

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

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