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

Найти сумму числовых значений цифр, содержащихся в строке (используя switch) - C++

Восстановить пароль Регистрация
 
stels009
 Аватар для stels009
15 / 15 / 0
Регистрация: 05.04.2011
Сообщений: 401
26.10.2011, 00:32     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #1
Мне требуется:
Написать программу, которая считывает строку символов, состоящую только из латинских букв, цифр и пробелов (с проверкой символов при вводе), и находит сумму числовых значений цифр, содержащихся в строке.
Как это сделать используя оператор свич.

Желательно с живым примером.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
26.10.2011, 00:47     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #2
Для проверки данных при вводе используйте цикл while

Цитата Сообщение от stels009 Посмотреть сообщение
Написать программу, которая считывает строку символов, состоящую только из латинских букв, цифр и пробелов (с проверкой символов при вводе), и находит сумму числовых значений цифр, содержащихся в строке.
Затрудняюсь в выборе типов данных, или необходимо преобразование в строку?
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 00:51     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #3
с while
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
    char ch;
    int sum = 0;
         cout << "Enter smth.... : ";
    while((ch = getchar()) !='\n'){
        
        if(atoi(&ch) > 0 && atoi(&ch) < 9){
            sum += atoi(&ch);
        }
    }
    cout << sum << endl;
    cin.get();
    return 0;
}
stels009
 Аватар для stels009
15 / 15 / 0
Регистрация: 05.04.2011
Сообщений: 401
26.10.2011, 00:52  [ТС]     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #4
Тама должно быть чтото в роде как этот калькулятор со свитчем
C++
1
2
3
4
5
6
7
8
9
10
11
switch (ch)
        {
            case '/': c=a/b; break;
            case '*': c=b*a; break;
            case '+': c=a+b; break;
                        case '-': c=a-c; break;
            case '^': c=pow(a, b); break;
            case '%': c=(int)a % (int)b; break;
            //подсчитываются только видимые символы:  
        }
        cout<<"Ответ: "<<c<<"\n";
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 00:55     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #5
Цитата Сообщение от stels009 Посмотреть сообщение
Тама должно быть чтото в роде как этот калькулятор
вам нужен консольный калькулятор??
stels009
 Аватар для stels009
15 / 15 / 0
Регистрация: 05.04.2011
Сообщений: 401
26.10.2011, 00:59  [ТС]     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #6
Нет, не калькулятор нужна программа которая считывает со строки символы, считает их количество(включая пробелы)...
если в строке есть числа программа должна посчитать сумму чисел...
И при этом должен использоваться оператор switch и case
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 01:03     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #7
Вы уверены что ва мнужен switch ? даже не знаю куда его тут засунуть..
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
#include "stdafx.h"
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int main(){
    char ch;
    int sum = 0;
    int sym = 0;
    cout << "Enter smth.... : ";
    while((ch = getchar()) !='\n'){
        switch(atoi(&ch)){
        case 1:
            sum +=1; break;
        case 2:
            sum +=2; break;
        case 3:
            sum +=3; break;
        case 4:
            sum +=4; break;
        case 5:
            sum +=5; break;
        case 6:
            sum +=6; break;
        case 7:
            sum +=7; break;
        case 8:
            sum +=8; break;
        case 9:
            sum +=9; break;
        default:
            sum +=0;
        }
        sym ++;
    }
    cout << "SUM :"<< sum << endl;
    cout << "Symbols : "<< sym << endl;
    cin.get();
    return 0;
}
глупая реализация получается
stels009
 Аватар для stels009
15 / 15 / 0
Регистрация: 05.04.2011
Сообщений: 401
26.10.2011, 01:18  [ТС]     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #8
А где программа считывает данные из строки и где она считает символы??
А если будет не цыфра а число...
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 04:43     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #9
Цитата Сообщение от stels009 Посмотреть сообщение
А где .....??
А там где вы могли бы взять то что вам дали и переделать в то что вам надо.

А если будет не цыфра а число...
а если будет цИфра то будет сумма цИфр числа..

программа ниже возьмет любую вашу строку, посчитает сумму чисел и кол-во символов. если вам нужны проверки на наличие только латинского алфавита и вам надо использовать switch, потрудитесь доработать.
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
#include "stdafx.h"
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
 
int main(){
    char str[100];
    char ch;
    int sum = 0, symb = 0, num = 0;
    cout << "Enter smth ..... :";
    while((ch = getchar())!='\n'){
        str[symb] = ch;
 
        symb++;
    }
    for(int j = 0; j < symb; j++){
        if(atoi(&str[j])>0 && sum == 0 || atoi(&str[j])>0 && num > 0){
                sum += atoi(&str[j]);
                num = 0;
        } else if(atoi(&str[j]) == 0 || str[j] == ' '){
            num = 1;
        }
    }
    cout << "Sum : " << sum;
    cout << "Symbols : " << symb;
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2011, 09:45     Найти сумму числовых значений цифр, содержащихся в строке (используя switch)
Еще ссылки по теме:

C++ Вводится строка. Подсчитать сумму цифр, содержащихся в ней
Найти сумму всех слов-чисел, содержащихся в строке C++
C++ Поиск символа в строке wchar_t используя switch

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
26.10.2011, 09:45     Найти сумму числовых значений цифр, содержащихся в строке (используя switch) #10
Цитата Сообщение от stels009 Посмотреть сообщение
Написать программу, которая считывает строку символов, состоящую только из латинских букв, цифр и пробелов (с проверкой символов при вводе), и находит сумму числовых значений цифр, содержащихся в строке.
Как это сделать используя оператор свич.
- Ниже простенькая С++ реализация всего этого
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
48
49
50
51
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    char str[1024];//ГЌГі âîò ГІГ*êîé äëèГ*Г» ñòðîêó Г¬Г*ГҐ Г§Г*õîòåëîñü
    cout<<"Enter text :\n";
    cin.getline(str,1024);//Г—ГЁГІГ*ГҐГ¬ ñòðîêó Г± ïðîáåëГ*ìè
    long len = strlen(str);;
    long sum = 0;
    for(long i = 0; i < len; i++)
    {
        switch(str[i])
        {
        case '1':
            sum += 1;
            break;
        case '2':
            sum += 2;
            break;
        case '3':
            sum += 3;
            break;
        case '4':
            sum += 4;
            break;
        case '5':
            sum += 5;
            break;
        case '6':
            sum += 6;
            break;
        case '7':
            sum += 7;
            break;
        case '8':
            sum += 8;
            break;
        case '9':
            sum += 9;
            break;
        default:
            sum += 0;
            break;
        }
    }
    cout<<"sum of digits : "<<sum<<"\n";
    system("pause");
    return 0;
}
Миниатюры
Найти сумму числовых значений цифр, содержащихся в строке (используя switch)  
Yandex
Объявления
26.10.2011, 09:45     Найти сумму числовых значений цифр, содержащихся в строке (используя switch)
Ответ Создать тему
Опции темы

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