定义struct student类局部变量➢通过scanf函数输入以上结构体变量成员num、name、c、oop、db的值➢计算其中avg成员(平均成绩)的值➢返回成员值输入、计算后的结构体变量
时间: 2023-08-13 21:05:58 浏览: 92
详解C语言的结构体中成员变量偏移问题
5星 · 资源好评率100%
好的,以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
struct student {
int num;
char name[20];
float c;
float oop;
float db;
float avg;
};
struct student input(struct student s) {
printf("请输入学生信息:\n");
printf("学号:");
scanf("%d", &s.num);
printf("姓名:");
scanf("%s", s.name);
printf("C语言成绩:");
scanf("%f", &s.c);
printf("面向对象程序设计成绩:");
scanf("%f", &s.oop);
printf("数据库成绩:");
scanf("%f", &s.db);
return s;
}
float calculate_avg(struct student s) {
return (s.c + s.oop + s.db) / 3.0;
}
struct student calculate(struct student s) {
s.avg = calculate_avg(s);
return s;
}
void output(struct student s) {
printf("学号:%d\n", s.num);
printf("姓名:%s\n", s.name);
printf("C语言成绩:%f\n", s.c);
printf("面向对象程序设计成绩:%f\n", s.oop);
printf("数据库成绩:%f\n", s.db);
printf("平均成绩:%f\n", s.avg);
}
int main() {
struct student s;
s = input(s);
s = calculate(s);
output(s);
return 0;
}
```
这个程序定义了一个结构体 `student`,包含学生的学号、姓名、三门课成绩和平均成绩。通过 `input` 函数输入学生信息,通过 `calculate_avg` 函数计算平均成绩,通过 `calculate` 函数计算并更新平均成绩,最后通过 `output` 函数输出学生信息。在 `main` 函数中调用这些函数完成对结构体变量的输入、计算和输出。
阅读全文