2016-09-27 6 views
-1

私はCプログラミングを初めて利用しています。私はプログラムを書いており、キーボードから 'a'を入力すると、出力は0 1になります。私がforループについて知っているところから、条件がfalseになると、本体のステートメントは実行されません。したがって、 'a'と入力すると、出力は0になります。あなたは、SO 2つの文字が入力のために利用可能である、<return>次いでaに入っcプログラムから間違った出力を得る

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

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

答えて

3

0は、第一及び第二のため1のために書かれています。すべて正しい。 getchar()からncとOP--

開始BY REQUESTED

--EXPLANATION 0に等しく、最初の呼び出しは、ncncが今インクリメント1に等しく、印刷され、次いで0 0に等しく、a読み出します。その後、ncは、今ではインクリメントその後、1が印刷されgetchar()への2回目の呼び出しnewlineを読み込み、ncが1に等しいが、あなたのためのおかげで返信2.

+0

に等しく、先生forループ内でのプログラムの動作を説明してください –

関連する問題