2016-09-27 2 views
-1

Я новичок в программировании на языке C. Я написал программу, и я получаю вывод 0 1, когда «a» вводится через клавиатуру. Из того, что я знаю о цикле for, он не должен выполнять инструкции тела, если условие становится false. Таким образом, при вводе «a» выход должен быть 0.Получение неправильного вывода из программы c

#include<stdio.h> 
main() 
{ int c; 

    long nc=0; 
    for(nc=0;c=getchar()!=EOF;++nc) 
    { 
     printf("%ld \n",nc); 
    } 
} 

ответ

3

Вы ввели a затем <return>, поэтому 2 символы доступны для ввода, 0 написана для первого и 1 для второго. Все правильно.

--EXPLANATION ЗАПРОШЕННАЯ OP--

старт с nc равен 0, то первый вызов getchar() читает a, nc равен 0, то 0 печатается, nc увеличивается, так что теперь равен 1; затем второй вызов getchar() читает newline, nc равен 1, то 1 распечатывается, nc увеличивается, так что теперь равен 2.

+0

спасибо вам ответить, сэр, пожалуйста, объясните, работая в программе внутри для цикла –

Смежные вопросы