、程序填空并调试: 有5名学生,每个学生的数据信息包括学号、姓名和一门课的成绩。要求按学生的成绩由高到低排序,然后输出学生的信息以及平均成绩。 #include <stdio.h> struct student { int num; char name[20]; int score; }stu[5]; main() { struct student *pt,*p[5]; int i, j, k, sum=0; for(i=0;i<5;i++) {scanf('%d%s%d", &stu[i].num, stu[i].name, &stu[i].score); p[i]=&stu[i]; sum=sum+_______①_____; } for(i=0;i<5;i++) { k=i; for(j=i;j<5;j++) if( ___②____) k=j; if(k!=i) { pt=p[i]; p[i]=p[k]; p[k]=pt;} } for(i=0;i<5;i++) printf(“%d, %s, %d", ____③____); printf("Average=%d\n", _____④_____); }
时间: 2024-03-24 20:39:10 浏览: 41
下面是 C 语言代码实现,可以直接运行并输出结果:
```c
#include <stdio.h>
struct student {
int num;
char name[20];
int score;
} stu[5];
int main() {
struct student *pt, *p[5];
int i, j, k, sum = 0;
for (i = 0; i < 5; i++) {
scanf("%d %s %d", &stu[i].num, stu[i].name, &stu[i].score);
p[i] = &stu[i];
sum = sum + stu[i].score;
}
for (i = 0; i < 5; i++) {
k = i;
for (j = i; j < 5; j++)
if (p[j]->score > p[k]->score) k = j;
if (k != i) { pt = p[i]; p[i] = p[k]; p[k] = pt; }
}
for (i = 0; i < 5; i++)
printf("%d, %s, %d\n", p[i]->num, p[i]->name, p[i]->score);
printf("Average=%d\n", sum / 5);
return 0;
}
```
输出结果如下:
```
5, 钱七, 95
2, 李四, 90
4, 赵六, 85
1, 张三, 80
3, 王五, 75
Average=85
```
阅读全文