細節決定成敗(用結構體變數和結構體指標變數的指標做函式引數)
阿新 • • 發佈:2019-02-20
//有n個結構體變數, //內含學生學號, //姓名和3門 //課程成績 //要求輸出平均成績最高 //的學生的資訊 //包括學號,姓名, //3門課程成績和平均成績 #include <stdio.h> #define n 3 struct student{ int num; char name[20]; float score[3]; float aver; }; int main(){ void input(struct student stu[]); struct student max(struct student stu[]); void print(struct student stu); struct student stu[n],*p=stu; input(p); print(max(p)); return 0; } void input(struct student stu[]){ int i; printf("請輸入各學生的資訊:學號,姓名,三門課程成績:\n"); for(i=0;i<n;i++){ scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name, &stu[i].score[0],&stu[i].score[1],&stu[i].score[2], &stu[i].aver); stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3; } } struct student max(struct student stu[]){ int i,m=0; for(i=0;i<n;i++){ if(stu[i].aver>stu[m].aver) m=i; } return stu[m]; } void print(struct student stu){ printf("\n成績最高的學生是:\n"); printf("學號:%d\n姓名:%s\n三門課的成績:%5.1f,%5.1f,%5.1f\n平均成績:%6.2f", stu.num,stu.name,stu.score[0],stu.score[1],stu.score[2],stu.aver); printf("\n"); }