以下是运用结构体实现的代码示例:
(其中利用到了结构体指针)
#include <stdio.h>
struct Student {
char name[20];
int studentID;
float score1;
float score2;
float score3;
float average;
};
void input(struct Student *student) {
printf("请输入学生的姓名:");
scanf("%s", student->name);
printf("请输入学生的学号:");
scanf("%d", &(student->studentID));
printf("请输入学生的第一门课成绩:");
scanf("%f", &(student->score1));
printf("请输入学生的第二门课成绩:");
scanf("%f", &(student->score2));
printf("请输入学生的第三门课成绩:");
scanf("%f", &(student->score3));
}
void calculateAverage(struct Student *student) {
student->average = (student->score1 + student->score2 + student->score3) / 3;
}
void output(struct Student student) {
printf("姓名:%s\n", student.name);
printf("学号:%d\n", student.studentID);
printf("第一门课成绩:%.2f\n", student.score1);
printf("第二门课成绩:%.2f\n", student.score2);
printf("第三门课成绩:%.2f\n", student.score3);
printf("平均成绩:%.2f\n", student.average);
}
int main() {
struct Student student1, student2, student3;
// 输入数据
printf("请输入第一个学生的数据:\n");
input(&student1);
printf("请输入第二个学生的数据:\n");
input(&student2);
printf("请输入第三个学生的数据:\n");
input(&student3);
// 计算平均成绩
calculateAverage(&student1);
calculateAverage(&student2);
calculateAverage(&student3);
// 打印学生数据及平均成绩
printf("第一个学生的数据及平均成绩:\n");
output(student1);
printf("第二个学生的数据及平均成绩:\n");
output(student2);
printf("第三个学生的数据及平均成绩:\n");
output(student3);
return 0;
}
注意使用结构体指针时需要提前进行声明,在使用时注意使用->而不是.操作符来操作