2016-08-11 8 views
-3

このコードを実行すると無限の出力が得られる理由を知りたいのですが。Cで永遠に実行されているコード - 何が間違っていましたか?

#include <stdio.h> 

int main(){ 

    int num; 
    printf(" enter a number\n"); 
    scanf(" %d", &num); 
    for(num = 0 ; num <= 10 ; num+=num){ 
     printf(" %d",num); 
    } 

    return 0; 
} 
+0

for(int i = 0; i user3386109

+0

これは別の質問です。この質問を整理して回答を受け入れると、テーブルの印刷に関する新しい質問を開始することができます。しかし、まずそれを自分で試してみてください。ヒント:2つの 'for'ループが必要です。外側ループはテーブルの行をカウントし、内側ループは列をカウントします。 – user3386109

+0

ループで 'num'を表示するときに、疑わしいものは何か観察しましたか? 「for」の終了条件(カッコ内の2番目の式)があるかどうかについての観察結果は何ですか? – Olaf

答えて

2

num+= numnumをインクリメントすることはありません:ここでは、コードです。 0には常に0が追加されます。またnum = 0forは、ユーザ入力をnumに上書きします。

1

num + = numは常に0〜0(num)を加算するため、numの値は増分しません。したがって、numは常に10未満であり、ループは終了しません。

0

numが++最初のnum = 0何を得ることはnum += 0で、ループは10がジャストnum++

0
int num; 
printf(" enter a number\n"); 
scanf(" %d", &num); 
for(num = 0 ; num <= 10 ; num++){ 
    printf(" %d",num); 
    } 

NUM + = num個の意味はNUM = NUM​​ + NUMで使うに達することはありませんで、num> 0、num += numにつながる一方、 numは0から始まりnum = 0なので、常に無限ループに入ります。それをnum++に変更してください。

関連する問題