2016-09-27 38 views
-1

我是C編程新手。我寫了一個程序,當通過鍵盤輸入'a'時,我得到輸出0 1。根據我所知道的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 REQUESTED BY OP--

開始與nc等於0,以getchar()第一呼叫讀取anc等於0,那麼0被印刷,nc遞增所以現在等於1;然後getchar()秒調用讀取newlinenc等於1,則1打印,nc遞增所以現在等於2.

+0

感謝您的答覆,先生請說明內部程序的工作循環 –