中小企業の働き方改革をサポート>>

一つの整数をキーボードから入力する。これを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);
}

この後、どうしたらいいですか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

「最小のものを求める」部分が全くないんですが……まぁいいか。


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

この回答への補足

>forループの初回ならtの値をminに入れる

forループで何回目かどうかわかるようにすることができるんですか?
どうようにするか教えてくれたら嬉しいです。

補足日時:2008/10/13 17:16
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/13 17:53

まず、全体の流れを決めましょう。


(1)nを入力する
(2)n個の整数を入力して、その値を記録する
(3)記録した中から最小値を探す
(4)最小値を表示する

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

実は、最小値を探すだけなら配列に記録する必要はなくて、入力→比較を繰り返せば最小値が求まります。
前の回答者さんはこちらのやり方ですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/13 17:54

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/13 17:51

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);

ぐらいか…。
(っていうか、「一応途中まではやってみました。」は何もやっていないのと同じだろう…。「一番小さいもの」を選ぶことをやっていないし、出力もしていない。)
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/10/13 17:52

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング