Количество однозначных чисел и их сумма в строке - C (СИ)
Формулировка задачи:
Задание: программа просит ввести строку символов и находит в ней кол-во однозначных чисел и их сумму.
Похожих заданий на форуме не нашёл. Вот мною начатая программа, помогите, пожалуйста:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(int argc, char *argv[]) {
char str[100]="";
int i, count=0, sum=0;
gets(str);
for (i=0; str[i]!='\0'; i++)
if (isdigit(str[i])) {
if ((str[i]) >=0 && (str[i]) <=9) {
count += 1;
sum += str[i]; }}
printf("word count is %d", count);
printf("\nword count is %d\n", count);
system("pause");
return 0;
}Решение задачи: «Количество однозначных чисел и их сумма в строке»
textual
Листинг программы
#include <stdio.h>
int main() {
char str[100];
int i, counter, sum;
for ( i = 0, counter = 0, sum = 0; scanf("%c", &str[i]) == 1; i++ ) {
if ( str[i] >= '0' && str[i] <= '9' ) {
counter += 1;
sum += str[i] - '0';
}
}
printf("quantity=%d\n", counter);
printf("sum=%d\n", sum);
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вводом/выводом данных
- Объявление переменных: строки str, счетчика counter, суммы sum и цикла i
- Начало цикла, который выполняется до тех пор, пока не будет введен ноль или символ, не являющийся однозначным числом
- Внутри цикла проверяется, является ли текущий символ однозначным числом
- Если символ является однозначным числом, то увеличивается счетчик counter и к сумме sum добавляется значение этого числа (вычитается '0', так как в ASCII таблице значения цифр начинаются с '0')
- После окончания цикла выводится количество найденных однозначных чисел (переменная counter) и их сумма (переменная sum)