根据上文补全代码。#include<stdio.h> struct student { char number[15]; char name[20]; int score; }; void sort(struct student *p,int n) { /*********Begin*********/ /*********End**********/ } int main(void) { struct student arr[200],t; int n,i,j; scanf("%d",&n); /*********Begin*********/ /*********End**********/ sort(arr,n); for(i=0;i<n;i++) printf("%s %s %d\n",arr[i].number,arr[i].name,arr[i].score); return 0; }
时间: 2023-07-05 09:34:24 浏览: 107
好的,下面是代码的补全部分:
```c
#include<stdio.h>
struct student {
char number[15];
char name[20];
int score;
};
void sort(struct student *p, int n) {
int i, j;
struct student temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if ((p + i)->score < (p + j)->score) {
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
}
}
int main(void) {
struct student arr[200], t;
int n, i, j;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s %s %d", arr[i].number, arr[i].name, &arr[i].score);
}
sort(arr, n);
for (i = 0; i < n; i++) {
printf("%s %s %d\n", arr[i].number, arr[i].name, arr[i].score);
}
return 0;
}
```
该程序中,我们定义了一个结构体 `student` 来存储每个学生的信息,包括学号、姓名、成绩。在 `main()` 函数中,我们先输入学生的数量 `n`,然后使用 `for` 循环输入每个学生的信息。接下来调用 `sort()` 函数进行排序,最后输出排序后的学生信息。在 `sort()` 函数中,我们使用了简单的选择排序算法,按照成绩从高到低排序。需要注意的是,在函数中使用 `p + i` 和 `p + j` 来访问结构体数组中的元素,使用 `*(p + i)` 和 `*(p + j)` 来访问结构体数组中的元素的值。
阅读全文