定义函数处理结构体数组,按成绩从高到低降序排列。
函数接口定义:
struct stu {
int num;
char name[20];
int score; };
void fun ( struct stu *p, int n );
p是结构体数组的起始地址,n是结构体单元个数。 结构体成员:num是学号,name是姓名,score是成绩。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
#include
struct stu{
int num;
char name[20];
int score;
};
void fun( struct stu *p, int n );
int main()
{ struct stu a[20];
int n, i;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d%s%d", &a[i].num, a[i].name, &a[i].score);
}
fun(a,n);
for(i = 0; i < n; i++)
printf("%d %s %dn", a[i].num, a[i].name, a[i].score);
return 0;
}
输入样例:
在这里给出一组输入。例如:
6 1001 anny 85 1002 boy 75 1003 car 65 1004 dan 55 1005 emm 95 1006 pa 35
输出样例:
在这里给出相应的输出。例如:
1005 emm 95 1001 anny 85 1002 boy 75 1003 car 65 1004 dan 55 1006 pa 35答案 :
void fun ( struct stu *p, int n )
{
int i, j;
for(i=0;ip[i].score)
{
struct stu min;
min=p[i];
p[i]=p[j];
p[j]=min;
}
}
}
}
完整代码:
#includestruct stu{ int num; char name[20]; int score; }; void fun( struct stu *p, int n ); int main() { struct stu a[20]; int n, i; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%d%s%d", &a[i].num, a[i].name, &a[i].score); } fun(a,n); for(i = 0; i < n; i++) printf("%d %s %dn", a[i].num, a[i].name, a[i].score); return 0; } void fun ( struct stu *p, int n ) { int i, j; for(i=0;i p[i].score) { struct stu min; min=p[i]; p[i]=p[j]; p[j]=min; } } } }



