从键盘上输入三个学生的学号,姓名和三门课的成绩,输出每个学生的姓名和三门课成绩的平均值。
结构体student,成员num表示学号,name【20】表示姓名,score【3】表示成绩,avg表示平均成绩
#include <stdio.h>
#include <string.h>
struct student {
int num;
char name[20];
int score[3];
float avg;
} students[3];
int main() {
int i;
for(i=0; i<3; i++) {
printf("学生%d\n", i+1);
printf("学号:");
scanf("%d", &students[i].num);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩1:");
scanf("%d", &students[i].score[0]);
printf("成绩2:");
scanf("%d", &students[i].score[1]);
printf("成绩3:");
scanf("%d", &students[i].score[2]);
students[i].avg = (float)(students[i].score[0] + students[i].score[1] + students[i].score[2]) / 3.0;
}
for(i=0; i<3; i++) {
printf("\n学生%d:\n", i+1);
printf("学生姓名:%s\n", students[i].name);
printf("平均成绩:%.2f\n", students[i].avg);
}
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:#include <stdio.h>
#define N 3 // 学生数量
#define M 3 // 课程数量
typedef struct student {
int id;
char name[20];
float grades[M];
float avg_grade;
} Student;
int main() {
Student students[N];
// 输入学生信息
for (int i = 0; i < N; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号: ");
scanf("%d", &students[i].id);
printf("姓名: ");
scanf("%s", students[i].name);
for (int j = 0; j < M; j++) {
printf("第%d门课的成绩: ", j+1);
scanf("%f", &students[i].grades[j]);
}
}
// 计算平均成绩
for (int i = 0; i < N; i++) {
float sum = 0;
for (int j = 0; j < M; j++) {
sum += students[i].grades[j];
}
students[i].avg_grade = sum / M;
}
// 输出结果
for (int i = 0; i < N; i++) {
printf("%s的平均成绩为%.2f\n", students[i].name, students[i].avg_grade);
}
return 0;
}