1、程序填空并调试: 有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-20 19:41:45 浏览: 84
根据题意,代码填空如下:
```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 + p[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;
}
```
该程序通过结构体数组和指向结构体的指针数组实现了对学生信息的存储和排序,最后输出了学生信息和平均成绩。
阅读全文