久しぶりに戸惑う

 学校で出された問題なのですが、配列の中身の数(int型)で上から数の大きな順に入れ替えるというものがありました。

何人分かの数学と英語の点数を読み込み(最後は^D)、読み込んだ順に表示し、次に数学の高い点数順と、英語の高い点数順に表示し、最後は数学と英語の各平均点を表示しなさい。

というものです。
 ということで並べ替えるのを2回ほどやったので関数にしてしまおうと考えて、実際作りました。
配列を引数にとる関数は作ったことが無かったのでちょっと調べてから作りました。こんな感じです。(部分的に抜粋)

void Array(int *a) { ... }

配列を渡すには"*"またはa[]で出来ます。
またこの関数を読み込むには

Array(a)

という風に&aにせずに使えます。
またArrayのなかでaに代入するとaが変化します。


 ということで簡単に課題を終わらせて帰ろうとしたのですが...。
なぜかうまくいかずに苦労して予定より1時間ほど格闘してしまいました。
なぜかcoreダンプしまして、進まない。どこがおかしいのか予測して、ソースを見るも"バブルソート"という方法を指定されていた(PADで示されていました。フローチャートの方がわかりやすいのに)ので、どこがおかしいのかも探すのに苦労したり。バブルソートなんて使ったこと無かったので。
 ということでけっこう苦労してしまいました。めでたしめでたし?バブルソート便利そうなのでもうちょっと深く見てみよう。