私はこのコードに問題があります。正しくコンパイルされません。私はこの間違い取得しています:互換性のない型の発現と 'loebsdata2017'(別名 '構造体loebsdata2017') を初期化Qsortとstrcmp
'をloebsdata2017 *'(別名 '構造体 loebsdata2017 *');参照を中止する*
そして私は自分のコードで何を変更するのか分かりません。あなたは、ポインタ宣言で*
を忘れてしまったように見える
int sammenlign_hold (const void *p1, const void *p2);
void opgave_2 (loebsdata2017 *alle_loebsdata2017) {
int i = 0;
for (i = 0; i < MAX_PERSONER; i++) {
qsort (alle_loebsdata2017, 792, sizeof (loebsdata2017), sammenlign_hold);
if(strcmp(alle_loebsdata2017[i].nationalitet, "DEN") == 0)
{
printf("%s \n", alle_loebsdata2017[i].rytternavn);
}
}
}
int sammenlign_hold (const void *p1, const void *p2) {
loebsdata2017 resultat1 = (loebsdata2017 *)p1,
loebsdata2017 resultat2 = (loebsdata2017 *)p2;
return strcmp(resultat1 -> rytterhold, resultat2 -> rytterhold)
}
質問の本文に入れる[良い質問をする方法を読む](http://stackoverflow.com/help/how-to-ask)を読んで、[最小限の完全で検証可能な例](http:// stackoverflow。 com/help/mcve)。 *あなたの質問を編集して改善する*。 –
ヒントとして、 '(loebsdata2017 *)p1'を使って、' loebsdata2017'オブジェクトに 'p1'を*ポインタ*としてキャストし、この*ポインタ*を変数' resultat1'に割り当てます。ポインタ。それは正しいようですか? –
あなたの例では、1回のループ反復ごとに1回ではなく、ループの前にデータを1回ソートするだけで十分です。 –