C語言源代碼:
#include<stdio.h>
#define?N?1024
/*定義壹個學生結構體*/
struct?student
{
char?number[10]; char?name[10]; char?sex[4]; int?Chinese; int?Math; int?English; int?Physics; int?Chemistry; int?History; int?Average;}stu[N];
int?main(int?argc,char?*argv[])
{
int?i=0; int?k=0; int?j=0; while(1) { printf("\t\t\t1?繼續錄入,2?退出並排序\n"); scanf("%d",&j); if(j==2)break;
else {printf("請輸入學號:");scanf("%s",stu[i].number);
printf("請輸入姓名:");scanf("%s",stu[i].name);
printf("請輸入性別:");scanf("%s",stu[i].sex);
printf("請輸入?語文、數學、英語、物理、化學、歷史:\n");
scanf("%d%d%d%d%d%d",&stu[i].Chinese,&stu[i].Math,&stu[i].English,&stu[i].Physics,&stu[i].Chemistry,&stu[i].History);
stu[i].Average=(stu[i].Chinese+stu[i].Math+stu[i].English+stu[i].Physics+stu[i].Chemistry+stu[i].History)/6;
i++;
k=i;
} } /*平均成績排序*/ for?(i=0;i<k-1;i++) for?(j=i+1;j<k;j++)if?(stu[i].Average<stu[j].Average)
{
stu[k]=stu[i];stu[i]=stu[j];stu[j]=stu[k];
}
printf("平均成績高到低是:\n"); for(i=0;i<k;i++) { printf("學號:%s,姓名:%s,性別:%s?語文?%d分,?數學?%d分,?英語?%d分,?物理?%d分,?化學?%d分,?歷史?%d分\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].Chinese,stu[i].Math,stu[i].English,stu[i].Physics,stu[i].Chemistry,stu[i].History); } return?0;}
運行效果如圖