• ベストアンサー

入力した整数のうち、最小のものを出力したい

一つの整数をキーボードから入力する。これをn とする。続いてn 個の整数をキーボードから入力する(値は100 以下と仮定してよい)。その後、n 個の整数の中で最小のものを出力したいのですが… 一応途中まではやってみました。↓ #include <stdio.h> int main(void) { int n, i, t; scanf("%d",&n); for (i=0; i < n; i++){ scanf("%d",&t); } return (0); } この後、どうしたらいいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

「最小のものを求める」部分が全くないんですが……まぁいいか。 ・もう一つint型の変数(minと仮置き)を用意する ・forループの初回ならtの値をminに入れる ・2回目以降はtがminより小さければtの値をminに入れる ということをやればforのループアウト時にminに最小値が入っています。

n1079
質問者

お礼

回答ありがとうございました。

n1079
質問者

補足

>forループの初回ならtの値をminに入れる forループで何回目かどうかわかるようにすることができるんですか? どうようにするか教えてくれたら嬉しいです。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

まず、全体の流れを決めましょう。 (1)nを入力する (2)n個の整数を入力して、その値を記録する (3)記録した中から最小値を探す (4)最小値を表示する とりあえず、(1)と(2)の前半はできているという事でしょう。 (2)後半 n個の数値をどこかに記憶するやり方はいろいろありますが、配列を使う方法が簡単でしょう。 nは100以下なので int型で要素数100個の配列を準備すればいいですね。 ループ変数をうまく使って、配列に順次数値を入れてください。 (3)最小値を探す まず配列の最初を最小値の初期値として、残りの値を1個ずつ比較して、小さい方を新しい初期値にしていけば最後まで調べた時に本当の最小値が求まっているはずです。 (4)表示 printfが使えるなら、それが一番簡単でしょう 実は、最小値を探すだけなら配列に記録する必要はなくて、入力→比較を繰り返せば最小値が求まります。 前の回答者さんはこちらのやり方ですね。

n1079
質問者

お礼

配列を使ってもやってみます! 回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.3

ループ回数は「ループカウンタiの値」で判断しましょう。

n1079
質問者

お礼

できました! ありがとうございます。

すると、全ての回答が全文表示されます。
noname#77845
noname#77845
回答No.1

int n, i, t;   ↓ int n, i, t, min; scanf("%d",&t); }   ↓ scanf("%d",&t); if(min>t)min=t; } return (0);   ↓ printf("%d\n",min); return (0); ぐらいか…。 (っていうか、「一応途中まではやってみました。」は何もやっていないのと同じだろう…。「一番小さいもの」を選ぶことをやっていないし、出力もしていない。)

n1079
質問者

お礼

回答ありがとうございました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう