質問 |
||
| 質問者:nuuuu | 変わらない・・・。 | |
|---|---|---|
困り度:
|
↓のプログラムについて (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) } できたら理由も教えてください。 よろしくおねがいします。 |
|
質問投稿日時:08/04/19 17:49 質問番号:3960132 |
||
回答 |
|
| 回答者:asuncion | > *プログラムは書き換えてよい。 とは書かれていますが、のべつまくなしに書き換えてよいというわけではないと思います。 もとのコードはどういう動きをするのが正しいかを確認して、 それを逸脱しない範囲で書き換えるのは認められると思います。 そのうえで、今回の課題1)と2)に取り組む必要があると思います。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/19 21:32 回答番号:No.3 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:asuncion | もう一つ。 > for(i=n;1<=i;i++){ n の値によっては無限ループに陥ります。 もとのコードの内容を今一度確認してみてください。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/19 18:32 回答番号:No.2 |
|
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| 回答者:asuncion | 課題を解く前に、もとのコードには大きな問題点があります。 > scanf("%d",&n); > if(i>=n){break;} 変数 i に何が入っているかわからない状態で n と比較してはいけません。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/19 18:26 回答番号:No.1 |
|
| この回答へのお礼 | 回答ありがとうございます。 元のコードを書き換えて問題を解く形式みたいなんです。 うまく伝えられなくてすみません。 |