試験の練習シートでは、河川データを使用して構造体を作成する必要があります。構造体は:qsort()とCの構造体の使用
struct river
{
char name[40]; //name of river max 40 char long
int length;
int drainage_area;
}
データは、data.txtというファイルを使用して、最大から最小の河川の長さまで編成されていると考えられます。このファイルには、次の情報を持っています
ナイル6650 334900
アマゾン6400 6915000
長江6300 1800000
ミシシッピ、ミズーリ6275298万
エニセイ川-アンガラ・Selenga 5539258万
イエロー5464 745000
OB-イルティシュ5410299万
コンゴ-Chambeshi 4700368万
は、だから私は、関数のqsort()を使用するために知っている、あなたは、比較関数が必要です。しかし、私はファイルが関わっているときにこれをどうやって行うのかについてはあまりよく分かりません。私は比較関数(一般的な比較関数)のための次を持っています:
int compare_rivers(void *r1, void *r2)
{
int *_r1 = (int *)r1;
int *_r2 = (int *)r2;
if(*_r1 > *_r2)
{
return -1;
}
if (*_r1 == *_r2)
{
return 0;
}
return 1;
}
私の質問はどうですか?私はファイルを開く方法と読む方法を知っていますが、これは配列を使う方法とは異なりますか?
説明は本当に役に立ちます。私は本格的なコードを求めていません。私はちょうど私がこれをやる方法の説明/例がほしいです!前もって感謝します!