Где здесь может быть ошибка? - 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;
}
Объяснение кода листинга программы
- В начале программы подключается библиотека
, которая позволяет использовать функции для работы с консолью. - В функции main() объявляются две переменные: text типа char с длиной 100 символов и i типа int.
- Затем объявляется переменная k типа int со значением 0.
- С помощью функции gets(text) вводится строка в переменную text.
- В цикле for перебираются все символы в строке text.
- Внутри цикла проверяется, является ли текущий символ числом от 0 до 9.
- Если символ является числом, то значение переменной k увеличивается на 1.
- После окончания цикла выводится значение переменной k с помощью функции printf().
- В конце программы возвращается 0, чтобы указать, что программа успешно завершилась.
- Ошибка в коде заключается в неправильном условии в цикле for. Вместо text[i] должно быть *(text+i).