Где здесь может быть ошибка? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Подскажите пж, Где здесь может быть ошибка?
#include <stdio.h>
void main()
{
    char text[100]
        int i,
        k=0;
    gets(text);
    for(i=0;i<100;i++)
    {
        if(text[i]>='0'&&text[i]<='9')
            k++;
    }
    printf("%d",k);
}

Решение задачи: «Где здесь может быть ошибка?»

textual
Листинг программы
#include <stdio.h>
 
int main()
{
   char text[100]; // <- точки с запятой не было
   int i, k=0;
   gets(text);
   for(i=0; text[i]; i++) // <- условие было не правильное
      if(text[i]>='0' && text[i]<='9')
         k++;
   printf("%d\n",k);
   
   return 0;
}

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

  1. В начале программы подключается библиотека , которая позволяет использовать функции для работы с консолью.
  2. В функции main() объявляются две переменные: text типа char с длиной 100 символов и i типа int.
  3. Затем объявляется переменная k типа int со значением 0.
  4. С помощью функции gets(text) вводится строка в переменную text.
  5. В цикле for перебираются все символы в строке text.
  6. Внутри цикла проверяется, является ли текущий символ числом от 0 до 9.
  7. Если символ является числом, то значение переменной k увеличивается на 1.
  8. После окончания цикла выводится значение переменной k с помощью функции printf().
  9. В конце программы возвращается 0, чтобы указать, что программа успешно завершилась.
  10. Ошибка в коде заключается в неправильном условии в цикле for. Вместо text[i] должно быть *(text+i).

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


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

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

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