/*定义一个Student结构体*/
typedef struct Student
{
int num; //学号
char name[10]; //姓名
float score[3];//三门课成绩
};
/*输入学生信息*/
void Input(Student *student,int n)
{
printf("请输入学生信息:学号,姓名和三门课成绩\n");
for (int i = 0; i < n; ++i)
{
printf("第%d个学生的信息:", i + 1);
scanf("%d%s%f%f%f", &student[i].num, student[i].name, &student[i].score[0],
&student[i].score[1], &student[i].score[2]);
}
}
/*处理平均成绩*/
void Aver_score(const Student* student, int n)
{
float sum1 = 0;//科目一的总成绩
float sum2 = 0;//科目二的总成绩
float sum3 = 0;//科目三的总成绩
for (int i = 0; i < n; ++i)
{
sum1 += student[i].score[0];
sum2 += student[i].score[1];
sum3 += student[i].score[2];
}
printf("科目一的平均成绩:%5.1f\n科目二的平均成绩:%5.1f\n科目三的平均成绩:%5.1f\n", sum1 / n, sum2 / n, sum3 / n);
}
/*处理最高分*/
void Highest(const Student* student, int n)
{
float highest = 0;//最高分学生的总成绩
float tmp = 0; //当前学生的总成绩
int index = 0; //最高分学生的下标
for (int i = 0; i < n; ++i)
{
tmp = student[i].score[0] + student[i].score[1] + student[i].score[2];
if (tmp > highest)
{
highest=tmp;
index = i;
}
}
printf("\n最高分学生的信息:学号:%d 姓名:% s 三门课成绩分别为: % 5.1f % 5.1f % 5.1f 总分:%5.1f\n",
student[index].num,student[index].name, student[index].score[0], student[index].score[1],
student[index].score[2], highest);
}
/*打印学生信息*/
void Printf(const Student *student,int n)
{
for (int i = 0; i < n; ++i)
{
printf("学号:%d 姓名:%s 三门课成绩分别为:%5.1f %5.1f %5.1f\n",student[i].num,
student[i].name, student[i].score[0], student[i].score[1], student[i].score[2]);
}
}
int main()
{
Student student [5];
Input(student, sizeof(student)/sizeof(student[0]));
printf("\n***************************************************************\n\n");
Printf(student, sizeof(student) / sizeof(student[0]));
printf("\n***************************************************************\n\n");
Aver_score(student, sizeof(student) / sizeof(student[0]));
Highest(student, sizeof(student) / sizeof(student[0]));
return 0;
}
定义一个学生结构体并打印出学生信息(平均成绩、最高分)
最新推荐文章于 2025-03-09 12:26:06 发布