若成績相同,則按英語成績排序。要求:①利用結(jié)構(gòu)體數(shù)組存放數(shù)據(jù)。②通過函數(shù)調(diào)用方式。
1 回答
已采納

望遠
TA貢獻1017條經(jīng)驗 獲得超1032個贊
#include<stdio.h> typedef?struct? { float?scores[3]; float?sum; int?num; }Student; void?inputMessaage(Student?students[],int?n) { int?i,j; for(i=0;i<n;i++) { printf("請輸入%d位學生的3課成績(空格分隔):\n",i+1); students[i].num=10000+i; for(j=0;j<3;j++) { scanf("%f",&students[i].scores[j]); } } } void?sum(Student?students[],int?n) { int?i,j; for(i=0;i<n;i++) { students[i].sum=0; for(j=0;j<3;j++) { students[i].sum+=students[i].scores[j]; } } } void?order(Student?studnets[],int?n) { int?i,j; Student?temp; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(studnets[i].sum<studnets[j].sum) { temp=studnets[i]; studnets[i]=studnets[j]; studnets[j]=temp; } if(studnets[i].sum==studnets[j].sum) { if(studnets[i].scores[2]<studnets[j].scores[2]) { temp=studnets[i]; studnets[i]=studnets[j]; studnets[j]=temp; } } } } } void?display(Student?studnets[],int?n) { int?i,j; printf("學生編號\t語文\t數(shù)學\t英語\t總分\n"); for(i=0;i<n;i++) { printf("??%d??\t",studnets[i].num); for(j=0;j<3;j++) { printf("%.1f\t",studnets[i].scores[j]); } printf("%.1f\n",studnets[i].sum); } } void?main() { Student?studnets[10]; int?num=10; inputMessaage(studnets,num); sum(studnets,num); order(studnets,num); display(studnets,num); }
- 1 回答
- 1 關(guān)注
- 2173 瀏覽
添加回答
舉報
0/150
提交
取消