c语言定义一个结构数组,可以存储两个学生的姓名、数学、计算机C语言成绩。输入学生的姓名和两门课的成绩到结构体中,然后输出两个学生的姓名和两门课的平均成绩,保留两位小数。 输入输出的规则:在主函数中进行输入操作,写一个函数完成数据处理和输出。
时间: 2024-03-16 21:45:34 浏览: 68
好的,以下是实现该功能的C语言代码:
```c
#include <stdio.h>
struct Student {
char name[20];
float math;
float c_language;
};
void print_avg(struct Student stu[]) {
float avg1 = (stu[0].math + stu[0].c_language) / 2;
float avg2 = (stu[1].math + stu[1].c_language) / 2;
printf("姓名\t数学\t计算机C语言\t平均成绩\n");
printf("%s\t%.2f\t%.2f\t%.2f\n", stu[0].name, stu[0].math, stu[0].c_language, avg1);
printf("%s\t%.2f\t%.2f\t%.2f\n", stu[1].name, stu[1].math, stu[1].c_language, avg2);
}
int main() {
struct Student stu[2];
for (int i = 0; i < 2; i++) {
printf("请输入第%d个学生的姓名、数学成绩、计算机C语言成绩:\n", i+1);
scanf("%s %f %f", stu[i].name, &stu[i].math, &stu[i].c_language);
}
print_avg(stu);
return 0;
}
```
程序中定义了一个结构体 `Student`,包含三个成员:姓名、数学成绩和计算机C语言成绩。程序中同时定义了一个 `print_avg` 函数,用于计算并输出两个学生的平均成绩。在主函数中,使用 `scanf` 函数进行输入,同时调用 `print_avg` 函数输出结果。
注意,程序中使用了 `%s` 格式化字符串读入学生姓名,这里没有使用 `&` 符号。这是因为对于字符数组,数组名就是一个指向数组第一个元素的指针,所以不需要再使用 `&` 符号获取其地址。
阅读全文