注意:参数类型要匹配
类型错误。sorting函数的参数应该是result型的,而你调用的时候用的是&(people.score),这是一个int ()[10]型(指向数组的指针)。两个类型不匹配就会出错了。
#include<stdio.h>
#include <stdlib.h>
typedef struct result
{
int num[10];
int score[10];
}result;
void sorting(result *p)
{
int i,j,k,temp,w;
for(i = 0;i <9;i++)
{
k = i;
for(j = i+1;j<10;j++)
{
if(p->score[i] < p->score[j])
{
k = j;
}
}
if(k != i)
{
temp = p->score[k];
p->score[k] = p->score[i];
p->score[i] = temp;
w = p->num[k];
p->num[k] = p->num[i];
p->num[i] = w;
}
}
}
int main()
{
int i;
result people;
printf("input:\n");
for(i = 0;i <10;i++)
{
scanf("%d %d",&people.num[i],&people.score[i]);
}
printf("\n");
sorting(&people);
for(i = 0;i < 10; i++)
{
printf(" %d %d\n",people.num[i],people.score[i]);
}
}
}