ページ

2012/05/19

[競技プログラミング][C言語][AOJ0001]List of Top 3 Hills

AIZU ONLINE JUDGE http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0001&lang=jp

List of Top 3 Hills

山や丘の高さをメートル単位で 1 から 10,000 までの範囲の整数で表した 10 個のデータがあります。
その 10 個のデータを読み込んで、その中で、高い順から3つ出力して終了するプログラムを作成して下さい。

Input

山の高さ1(整数) 
山の高さ2(整数) 
.
.
山の高さ10(整数) 

Output

最も高い山の高さ
2番目に高い山の高さ
3番目に高い山の高さ
回答:AOJ/vol0/AOJ0001.cpp at master · wada811/AOJ · GitHub
これもバブルソートで高いのを取ってくるだけ。
プログラミングの宝箱 アルゴリズムとデータ構造を参考にバブルソートの書き方を変えた。
int i;
int height[10];
int temp, flag;

do{
    flag = 0;
    for(i = 0; i < 9; i++){
        if(height[i] > height[i + 1]){
            flag = 1;
            temp = height[i + 1];
            height[i + 1] = height[i];
            height[i] = temp;
        }
    }
}while(flag);
ネットのそこいらで見たのを真似して書いたのよりコッチのほうが効率が良かったので次からはこの書き方で書く。