我想創建這個程序,從用戶獲取一個int數然後隨機化一對數字,基於輸入,在一個struct數組中。然後根據程序隨機化的數字對的總和對這個數組進行排序。爲什麼我的程序沒有對結構進行排序?
但是我的程序不能排序結構數組。它不正確的排序,我不知道爲什麼。這是代碼。
#define MAX 10
struct NumPair{
int n,m;
};
int main()
{
int i, j, amount=0;
NumPair NumPair[MAX];
srand(time(NULL));
printf("How many pair of numbers? (max 10): ");
scanf("%d", &amount);
for (i=0; i<amount; i++)
{
NumPair[i].n = rand() % 11;
NumPair[i].m = rand() % 11;
}
for (i=0; i<amount; i++)
{
for(j=1; j<amount; j++)
{
if((NumPair[i].n+NumPair[i].m) > (NumPair[j].n+NumPair[j].m))
{
int tmp;
tmp = NumPair[i].n;
NumPair[i].n = NumPair[j].n;
NumPair[j].n = tmp;
tmp = NumPair[i].m;
NumPair[i].m = NumPair[j].m;
NumPair[j].m = tmp;
}
}
}
for (i=0; i<amount; i++)
{
printf(" NumPair %d: (%d,%d)\n", i+1, NumPair[i].n, NumPair[i].m);
}
return 0;
}
我錯過了什麼?這可能非常愚蠢。
在此先感謝。
請注意,您不需要調用'結構NumPair Numpair'如果您已經定義這個結構。只需在main()中刪除關鍵字'struct'即可。 –