AIZU ONLINE JUDGE
(http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0001)
の問題「山の高さをメートル単位の整数で表した 10 個のデータがあります。
その 10 個のデータを読み込んで、その中で、高い順から3つ出力して
終了するプログラムを作成して下さい。」
にとりくんでいます。
前にでていた最大値をのぞいて一番大きい最大値を三回さがす、と
考えてみました。
他の方の解答にある一番小さい数を配列の最後におしこんでいく
という方法にくらべると、ぶさいくなやり方なのですが、どうして
うまく通らないのか、ご指摘おねがいします。
lang
1/* http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0001 2山の高さをメートル単位の整数で表した 10 個のデータがあります。 3その 10 個のデータを読み込んで、その中で、高い順から3つ出力して 4終了するプログラムを作成して下さい。 5*/ 6 7#include<stdio.h> 8 9int main(){ 10 int s[10],t[3]; 11 int i,j; 12 int bigger,biggest; 13 14 for (i = 0; i < 10; i++) { 15 scanf("%d",&s[i]); 16 } 17 18 bigger = 0; 19 biggest = 10000 + 1; //10000 が入力の最大値 20 for (j = 0; j < 3; j++) { 21 for (i = 0; i < 10; i++) { 22 if (bigger < s[i] && s[i] < biggest) { 23 bigger = s[i]; 24 } 25 } 26 t[j] = bigger; 27 biggest = bigger; 28 bigger = 0; 29 } 30 for (j = 0; j < 3; j++) { 31 printf("%d\n",t[j]); 32 } 33 34 return 0; 35}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/06 12:00