Программа выдает значение 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();
}

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

В этом коде:

  1. #include — подключаем стандартную библиотеку для ввода-вывода
  2. #include — подключаем библиотеку для работы с консолью
  3. main() — функция main() является точкой входа в программу
  4. long c=0; — объявляем переменную c типа long (целое число) и инициализируем её значением 0
  5. while(getchar()!='\n') c++; — входим в цикл while, который будет выполняться до тех пор, пока не будет прочитана новая строка (нажатие Enter). Внутри цикла увеличиваем значение переменной c на 1
  6. printf(%ld\n,c); — выводим значение переменной c с помощью функции printf(). В данном случае выведется значение 3, так как цикл выполнится 3 раза
  7. getch(); — блокирующий вызов, который ожидает нажатия клавиши в консоли При вводе 3 и нажатии Enter, программа выведет 3. Если ввести 5 и нажать Enter, программа выведет 5. Если ввести 10 и нажать Enter, программа выведет 10. И так далее.

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


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

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

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