• 締切済み

変わらない・・・。

↓のプログラムについて (1)break文をexit(0)とreturn(0)にするとどうなるか? (2)13行目と14行目にif(i>=n){break;}を入れるとどうなるか? *プログラムは書き換えてよい。 という問題なんですが私にはさっぱりです・・・。 #include<stdio.h> int main() { int i,n,total; while(1){ printf("整数n?");   scanf("%d",&n);     if(i>=n){break;} total=1; for(i=n;1<=i;i++){ printf("i=%d ",i); total*=i; } printf("total=%d\n",total); } printf("Thanks\n"); return(0) } できたら理由も教えてください。 よろしくおねがいします。

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> *プログラムは書き換えてよい。 とは書かれていますが、のべつまくなしに書き換えてよいというわけではないと思います。 もとのコードはどういう動きをするのが正しいかを確認して、 それを逸脱しない範囲で書き換えるのは認められると思います。 そのうえで、今回の課題1)と2)に取り組む必要があると思います。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

もう一つ。 > for(i=n;1<=i;i++){ n の値によっては無限ループに陥ります。 もとのコードの内容を今一度確認してみてください。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

課題を解く前に、もとのコードには大きな問題点があります。 >  scanf("%d",&n); >    if(i>=n){break;} 変数 i に何が入っているかわからない状態で n と比較してはいけません。

nuuuu
質問者

お礼

回答ありがとうございます。 元のコードを書き換えて問題を解く形式みたいなんです。 うまく伝えられなくてすみません。