【发布时间】:2014-03-05 02:28:39
【问题描述】:
我正在尝试创建这个程序,它从用户那里获取一个 int 数字,然后根据输入在结构数组中随机化一对数字。然后它根据程序随机化的数字对的总和对该数组进行排序。
但是我的程序不会对结构数组进行排序。它没有正确排序,我不知道为什么。这是代码。
#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;
}
我错过了什么?这可能是非常愚蠢的事情。
提前致谢。
【问题讨论】:
-
请注意,如果您已经定义了此结构,则无需调用
struct NumPair Numpair。只需删除main()中的关键字struct。