设有以下结构类型说明,存放学生的学号、姓名、三门课程成绩及平均分, struct stud { char num[5],name[10]; int s[3]; float ave; }; 要求编写程序: (1)函数readrec:从键盘输入2名学生的学号、姓名和三项成绩,然后计算出平均分放在结构体对应的域中; (2)函数writerec:输出2名学生的记录。 (3)main函数调用readrec函数和writerec函数,实现全部程序功能。
时间: 2024-03-16 16:43:29 浏览: 45
运用结构体数组与输入函数进行存放学生的学号姓名等数据
4星 · 用户满意度95%
下面是满足要求的程序代码:
```c
#include <stdio.h>
#include <string.h>
struct stud {
char num[5], name[10];
int s[3];
float ave;
};
void readrec(struct stud *s) {
printf("请输入学号:");
scanf("%s", s->num);
printf("请输入姓名:");
scanf("%s", s->name);
printf("请输入三门课程成绩:");
scanf("%d%d%d", &s->s[0], &s->s[1], &s->s[2]);
s->ave = (s->s[0] + s->s[1] + s->s[2]) / 3.0;
}
void writerec(struct stud *s) {
printf("学号:%s\n", s->num);
printf("姓名:%s\n", s->name);
printf("三门课程成绩:%d %d %d\n", s->s[0], s->s[1], s->s[2]);
printf("平均分:%.2f\n", s->ave);
}
int main() {
struct stud s[2];
int i;
for (i = 0; i < 2; i++) {
readrec(&s[i]);
}
for (i = 0; i < 2; i++) {
writerec(&s[i]);
}
return 0;
}
```
程序中定义了一个结构体 `stud`,包含学号、姓名、三门课程成绩和平均分四个域。函数 `readrec` 用于从键盘输入学生信息,计算平均分并存储在对应的域中;函数 `writerec` 用于输出学生信息。程序中使用数组 `s` 存储两名学生的信息,通过循环调用 `readrec` 和 `writerec` 函数实现全部功能。
阅读全文