Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для stels009
16 / 15 / 1
Регистрация: 05.04.2011
Сообщений: 426

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

26.10.2011, 00:32. Показов 2886. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне требуется:
Написать программу, которая считывает строку символов, состоящую только из латинских букв, цифр и пробелов (с проверкой символов при вводе), и находит сумму числовых значений цифр, содержащихся в строке.
Как это сделать используя оператор свич.

Желательно с живым примером.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.10.2011, 00:32
Ответы с готовыми решениями:

Найти сумму цифр, содержащихся в заданной строке и удалить все цифры «0»
Найти сумму цифр, содержащихся в заданной строке и удалить все цифры «0». Вывести строку. Затем удалить все не цифровые символы

Вычислить сумму цифр, содержащихся в строке
Дана строка. содержащая различные символы. среди которых есть цифры. помогите написать программу, которая вычисляет сумму цифр содержащихся...

Найти сумму всех слов-чисел, содержащихся в строке
С клавиатуры вводиться строка длинной не более 100 символов. Строка состоит из слов, отделённых друг от друга один или несколькими...

9
 Аватар для Revol'veR
23 / 23 / 4
Регистрация: 05.11.2010
Сообщений: 134
26.10.2011, 00:47
Для проверки данных при вводе используйте цикл while

Цитата Сообщение от stels009 Посмотреть сообщение
Написать программу, которая считывает строку символов, состоящую только из латинских букв, цифр и пробелов (с проверкой символов при вводе), и находит сумму числовых значений цифр, содержащихся в строке.
Затрудняюсь в выборе типов данных, или необходимо преобразование в строку?
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 00:51
с 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;
}
0
 Аватар для stels009
16 / 15 / 1
Регистрация: 05.04.2011
Сообщений: 426
26.10.2011, 00:52  [ТС]
Тама должно быть чтото в роде как этот калькулятор со свитчем
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";
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 00:55
Цитата Сообщение от stels009 Посмотреть сообщение
Тама должно быть чтото в роде как этот калькулятор
вам нужен консольный калькулятор??
0
 Аватар для stels009
16 / 15 / 1
Регистрация: 05.04.2011
Сообщений: 426
26.10.2011, 00:59  [ТС]
Нет, не калькулятор нужна программа которая считывает со строки символы, считает их количество(включая пробелы)...
если в строке есть числа программа должна посчитать сумму чисел...
И при этом должен использоваться оператор switch и case
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 01:03
Вы уверены что ва мнужен 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;
}
глупая реализация получается
0
 Аватар для stels009
16 / 15 / 1
Регистрация: 05.04.2011
Сообщений: 426
26.10.2011, 01:18  [ТС]
А где программа считывает данные из строки и где она считает символы??
А если будет не цыфра а число...
0
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
26.10.2011, 04:43
Цитата Сообщение от 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;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
26.10.2011, 09:45
Цитата Сообщение от 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)  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2011, 09:45
Помогаю со студенческими работами здесь

Подсчитать количество содержащихся в строке цифр
Дана строка. Подсчитать количество содержащихся в ней цифр

Используя классы, найти количество цифр в строке
Подскажите, что исправить ? Не особо понимаю как дальше описать программу. #include &lt;iostream&gt; #include &lt;string&gt; ...

Дана строка, состоящая из заглавных английских букв и цифр. Определить сумму числовых значений нечетных цифр
Дана строка, состоящая из заглавных английских букв и цифр. Определить сумму числовых значений нечетных цифр. Входные данные: В...

Подсчитать сумму цифр, содержащихся в строке
Здравствуйте, помогите,пожалуйста, написать программу на assembler fasm:Данные вводить с клавиатуры. Результат выводить на экран. При...

Файлы: Подсчитать сумму цифр, содержащихся в строке
Здравствуйте, помогите, пожалуйста написать программу. Входные данные записать в файл INPUT.TXT. Открыть этот файл для чтения, считать из...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru