構造体ノードを変数 a でソートしようとしていますが、結果が間違っていることがわかりました。
私の結果:
{5, 4}, {6, 2}, {7, 3}, {4, 1}, {3, 7}, {1, 3}, {0, 0},
私のコード:
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
int x;
int y;
} n;
int num = 7;
int compare(const void *ele1, const void *ele2) {
n *px, *py;
px = (n *) ele1;
py = (n *) ele2;
return px->x < py->x;
}
int main() {
n node[7] = {
{4, 1},
{6, 2},
{1, 3},
{5, 4},
{7, 3},
{3, 7}
};
int i;
qsort(node, num, sizeof (node[0]), compare);
for (i = 0; i < num; i++)
printf("{%d, %d}, ", node[i].x, node[i].y);
return 0;
}
要素のペアを 6 つだけ並べ替えると、結果は次のようになります。
{7, 3}, {6, 2}, {5, 4}, {4, 1}, {1, 3}, {0, 0},
これは正しいですが、7 で試したところ、上記の結果が表示されました。なぜそれが起こるのか誰か知っていますか?ありがとう!