- ベストアンサー
最小の整数が,何番目に入力されたものかを出力したい
先日、 「一つの整数をキーボードから入力する。これをn とする。続いてn 個の整数をキーボードから入力する(値は100 以下と仮定してよい)。その後、n 個の整数の中で最小のものを出力したい」 という質問をした者です。 今度は出力された最小の整数が,何番目に入力されたものか を出力したいのですが、どうすればいいですか? 困ってるんでお願いします。 ちなみに、前回の質問の答えはこうなりました。↓ #include <stdio.h> int main(void) { int n, i, t, min=0; scanf("%d",&n); for (i=0; i < n; i++){ scanf("%d",&t); if (i==0){ min=t; } if (min > t) { min=t; } } printf("\n最小:%d", min); return (0); }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
入力された値はtで、それが何番目かを表す変数がiです。それはわかっていらっしゃると思います。 そして、tの値は、min > tとなるときに、変数minに記録されていますが、iの値はそのまま更新されてしまっています。このときに、新たな変数にiの値も保持するように変更すればよいのです。 具体的な実装や、出力部の変更は、最小値minが複数回入力された場合をどうするかによって変わってきます。
その他の回答 (2)
- arain
- ベストアンサー率27% (292/1049)
先日、(中略)という質問をした者です。 http://okwave.jp/qa4398651.html 出力する際にどうやってその場所を特定したの? その場所でしょ。 ちなみに、その「整数」ってのは必ず全部違う値をとるわけ?
お礼
質問文が長くなってすいませんでした。 回答ありがとうございました。
- kokorone
- ベストアンサー率38% (417/1093)
ある設問を丸投げして、回答をもらい、関連設問も丸投げするつもりですか?丸投げは、マナー違反ですよ。 何がわからないのですか? ・入力毎に、回数をカウントする。 ・最小値が見つかったら、現在の回数を退避させる。 以上です。
お礼
丸投げしたつもりはないんですけど、そう見えてしまったのならすいませんでした。 回答ありがとうございます。
お礼
回答ありがとうございました! やってみます。