Количество однозначных чисел и их сумма в строке - 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;
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки для работы с файлами и вводом/выводом данных
  2. Объявление переменных: строки str, счетчика counter, суммы sum и цикла i
  3. Начало цикла, который выполняется до тех пор, пока не будет введен ноль или символ, не являющийся однозначным числом
  4. Внутри цикла проверяется, является ли текущий символ однозначным числом
  5. Если символ является однозначным числом, то увеличивается счетчик counter и к сумме sum добавляется значение этого числа (вычитается '0', так как в ASCII таблице значения цифр начинаются с '0')
  6. После окончания цикла выводится количество найденных однозначных чисел (переменная counter) и их сумма (переменная sum)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы