- ベストアンサー
C言語で分からないところがある……
- C言語の課題で分からないところがあり、質問しに来ました。ユーザから数を受けて、そこまでのフィボナッチ数列を表示させるというプログラムです。for文を使って、繰り返しの作業を行うことに成功しましたが、doとwhileに書き換える作業がうまくできません。
- C言語の課題で分からないところがあり、質問しに来ました。プログラムの目的は、ユーザから入力された数までのフィボナッチ数列を表示することです。for文を使用して繰り返し処理を実装しましたが、この処理をdoとwhile文で書き換える方法がわかりません。
- C言語の課題でつまづいています。ユーザからの入力を受けて、その数以下のフィボナッチ数列を表示するプログラムを作成しています。for文での実装は成功しましたが、doとwhile文に書き換える方法がわかりません。どなたか助けていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
課題なら自分でやるべきなんじゃないの。 少なくともやれるだけやって、どうなのかを聞くならいいけど、丸投げでしょ。 質問サイトが全滅したらどうするの? doとwhileの意味は理解できてるの? do { 処理 }while(繰り返し条件) ;
その他の回答 (2)
- hiropuri
- ベストアンサー率55% (24/43)
whileもif文やfor文と同じで、基本文法です。つまり、 自力でプログラムを組むのに必須な項目となります。 苦手意識を持たず、ご自身で調査・理解しておいた方が いいかと……落ち着いて考えれば難しくありませんよ(^^ (1)-------------------- for(i=1; i<=n; i++) { // 何かしらの処理 } (2)-------------------- i=1; do{ // 何かしらの処理 i++; }while(i<=n); (3)-------------------- i=1; while(i<=n) { // 何かしらの処理 i++; } (だ~っと書いたので、細かい点が間違えてたらすみません) 上記の(1)~(3)は、ほぼ同じ動作となります。 ただし(2)については要注意です。後判定なので、 「条件に関係なく、必ず一度は処理される」事になります。 状況によって上手く使い分けましょう。 ※step実行できる環境があるなら、落ち着いて1stepずつ 動かしてみると判りやすいですよ~!
お礼
回答ありがとうございました。 whileは教授に質問して自力で解きましたが、doのところは参照させてもらいました。 ありがとうございました。
- infeeld
- ベストアンサー率37% (3/8)
以下はどうでしょう。 i = 1; do { if (i <= n) { break; } printf("F%d = %d\n",i, fib(i)); i++; } while(1); 「ループ 前判定 後判定」でググって見てください。 forとwhileは前判定、do-whileは後判定です。 後判定の場合、必ず1回はループ内のブロックが実行されるというのがポイントです。 頑張って下さい。
お礼
ありがとうございました。 無事完成しました。
お礼
全く持ってその通りでした。 doとwhileの意味は理解していて、実際に書いてみたのですが、なぜか分からずじまいでして……