- 締切済み
C言語、この場合の記述の仕方
次の問題をどのように記述すればいいのかわかりません。 ・任意の整数を3つ入力して、その中から最大値だけを出力するプログラムを書け。 ex) 3 6 9 と入力した場合 最大値9 問題文からして if を使うのだと思うのですが、 いまいち想像ができません。 #include <stdio.h> int main() { ここから下の書き方がわかりません。 3つの整数を出力しろっていうことだから int a,b,c; のように最初に3つ記述すればいいのでしょうか? また、「最大値のみ表示する」という風にするには どのように記述すればいいのでしょうか? 2つなら if、else でなんとかできるような気がするのですが3つとなると・・・ 全然イメージが沸いてきません・・・。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- ikdx
- ベストアンサー率0% (0/2)
※scanf等で,3つの整数が順次入力される場合 まず変数xを用意します。0で初期化します。 次に変数yを用意します。0で初期化します。 scanf等で値が入力されたら,値をxに代入します。 xとyを比較します。 xの方が大きければ,その値をyに入れます。 scanf等で値が入力されたら,値をxに代入します。 xとyを比較します。 xの方が大きければ,その値をyに入れます。 xとyを比較します。 xの方が大きければ,その値をyに入れます。 最後にyの値を表示します。 forとifを組み合わせればできます。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
int a,b,c ; というようにしないで、 int a[3]; のように配列にして入力すれば、 a[0]を仮の最大値にして あとは、配列を頭から順に仮の最大値と比べる(2つを比較すればいい) ですね。 がんばって(^^)/
- tatsu99
- ベストアンサー率52% (391/751)
int a,b,c;として a=3; b=6; c=9; があるとします。 ここで、最大のものを入れる変数:xを用意します。 つまり int x; とします。 比較は一度に3つはできません。2つづつ比較します。 aとbを比較して大きい方をxにいれます。 if (a>b){ x=a; }else{ x=b; } ですね。 つぎにxとcを比較してcがxより大きいならxにcをいれます。 これでxにもっとも大きい数値がはいります。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
2つなら何とかできるのですね。 それでは、2つの場合をまず書いてみてください。 次に、入力を2つから3つに変更してください。変える部分は入力だけです。2つが入力できるなら3つ入力するようにするのもできますよね。 まずはここからです。(と言っても、待ってれば誰か正解を丸ごと書いてしまうと思いますが。)
- cascade
- ベストアンサー率24% (35/144)
宿題っぽい臭いがするんで、コードそのものは書きません。 この3つを変数を順に比較すればいいだけです。 …と書くと「?」となるかもですが、ホントにそのままです。 お察しの通り、3つの整数を代入する変数を用意します。(例:int a, b, c;) また、最大値を代入する変数を用意しておいたほうが 記述としてはスマートになると思います。(例:int max;) まず、a、b、cに値を代入しなければいけませんが、 それは質問にないので省略します。 代入された3つの変数のうち、aとbを比較し 大きいほうの変数をmaxに代入します。 その次はmaxとcを比較して、cがmaxより大きければmaxにcを代入します。 ここまででmaxにはa,b,cの中の最大値が入ったことになります。 最後にmaxを出力します。 あとは上をコード化するだけです。