Найти все цифры в строке и вычислить сумму этих цифр - C (СИ)
Формулировка задачи:
Все Работает если вводить без пробелов, но с пробелом выводится только первое число, (если можно с кратким объяснением пожалуйста)
Листинг программы
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str[100];
- int x = 0;
- scanf("%s", str);
- for(int i = 0;i < strlen(str);i++)
- {
- if((str[i] >= '1') && (str[i] <= '9'))
- {
- x += ((int)str[i] - 48);
- }
- }
- printf("%d", x);
- return 0;
- }
Решение задачи: «Найти все цифры в строке и вычислить сумму этих цифр»
textual
Листинг программы
- #include <ctype.h>
- #include <stdio.h>
- #define SIZE 256
- int main(void)
- {
- char str[SIZE], *p;
- unsigned sum = 0;
- fgets(str, SIZE, stdin);
- for (p = str; *p; p++)
- if (isdigit(*p))
- sum += *p - '0';
- printf("%u\n", sum);
- return 0;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с функциями ввода-вывода и преобразования символов в цифры.
- Определение размера строки, с которой будет работать программа (в данном случае 256 символов).
- Создание двух переменных: строки str и указателя p.
- Инициализация суммы чисел равной 0.
- Считывание строки с помощью функции fgets().
- Начинается цикл, который проходит по каждому символу в строке.
- С помощью функции isdigit() проверяется, является ли текущий символ цифрой.
- Если символ является цифрой, то он преобразуется в целое число и добавляется к сумме (sum).
- После прохождения всех символов в строке, сумма выводится на экран с помощью функции printf().
- Программа завершается, возвращая 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д