Программа выдает значение 1989058103 при вводе 3 вместо 3 - C (СИ)
Формулировка задачи:
Изучаю Си по книге кернигана ритчи.Почему данная программа выдает значение например при вводе 3 символов
1989058103 вместо 3?
#include<stdio.h> #include<conio.h> main() { long c; while(getchar()!='\n') ++c; printf("%ld\n",c); getch(); }
Решение задачи: «Программа выдает значение 1989058103 при вводе 3 вместо 3»
textual
Листинг программы
#include<stdio.h> #include<conio.h> main() { long c=0; while(getchar()!='\n') c++; printf("%ld\n",c); getch(); }
Объяснение кода листинга программы
В этом коде:
- #include
— подключаем стандартную библиотеку для ввода-вывода - #include
— подключаем библиотеку для работы с консолью - main() — функция main() является точкой входа в программу
- long c=0; — объявляем переменную c типа long (целое число) и инициализируем её значением 0
- while(getchar()!='\n') c++; — входим в цикл while, который будет выполняться до тех пор, пока не будет прочитана новая строка (нажатие Enter). Внутри цикла увеличиваем значение переменной c на 1
- printf(
%ld\n
,c); — выводим значение переменной c с помощью функции printf(). В данном случае выведется значение 3, так как цикл выполнится 3 раза - getch(); — блокирующий вызов, который ожидает нажатия клавиши в консоли При вводе 3 и нажатии Enter, программа выведет 3. Если ввести 5 и нажать Enter, программа выведет 5. Если ввести 10 и нажать Enter, программа выведет 10. И так далее.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д