c语言 已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(
- 提问者网友:不爱我么
- 2021-04-29 04:46
- 五星知识达人网友:你哪知我潦倒为你
- 2021-04-29 06:08
- 1楼网友:怙棘
- 2021-04-29 07:20
#include<stdio.h> #define FORMAT "学号:%d\t姓名:%s\t语文:%d\t数学:%d\t英语:%d\n" struct student { int stud_id; char name[20]; int score[3]; int total; int average; };struct student stu[3];
void print(struct student *p1) { //float average; for(int i=0;i<3;i++) printf(FORMAT,stu[i].stud_id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]); //得到p指向结构体变量中的值 } void average(struct student *p2) { for(int i=0;i<3;i++) { printf("%s",stu[i].name); printf("的总平均分:"); stu[i].total=0; stu[i].total=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; stu[i].average=(stu[i].total)/3; printf("%d\n",stu[i].average); }
}
void max(struct student *p3) { if(stu[0].total>stu[1].total&&stu[0].total>stu[2].total) { printf("总分最高的学生是:"); printf("%s\t",stu[0].name); printf("三门总分:"); printf("%d",stu[0].total); } else if(stu[1].total>stu[0].total&&stu[1].total>stu[2].total) { printf("总分最高的学生是:"); printf("%s\t",stu[1].name); printf("三门总分:"); printf("%d",stu[1].total); } else if(stu[2].total>stu[0].total&&stu[2].total>stu[1].total) { printf("总分最高的学生是:"); printf("%s\t",stu[2].name); printf("三门总分:"); printf("%d",stu[2].total); } }
void main() { int i,j; struct student *p; //定义一个指向结构体变量的指针 p=stu; printf("输入学生的信息:"); for(i=0;i<3;i++) { scanf("%d",&(stu[i].stud_id)); scanf("%s",&(stu[i].name)); for(j=0;j<3;j++) { scanf("%d",&(stu[i].score[j])); } }
void print(struct student * p); print(stu);
void average(struct student * p); average(stu);
void max(struct student * p); max(stu); }