Количество однозначных чисел и их сумма в строке - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д