/* 作者:一仁 06 沈婷筠 程式功能:Structure 應用練習 日期:101/03/14 */ #include <stdio.h> #include<stdlib.h> #define SWAP(x,y,t) (t=x,x=y,y=t) int main(void) { //freopen("score.in","r",stdin); freopen("score.out","w",stdout); int i,j,m,n,max; printf("請輸入人數:\n"); scanf("%d",&n); printf("%d\n",n); struct student /* 定義結構 */ { char name[15],ID[8]; int mid,end,usu; double all; }stu[n],t; /* 宣告結構變數 */ printf("請輸入資料:\n"); for(i=0;i<n;i++) { scanf("%s %s %d %d %d",&stu[i].name,&stu[i].ID,&stu[i].mid,&stu[i].end,&stu[i].usu); stu[i].all=(stu[i].mid*0.3)+(stu[i].end*0.3)+(stu[i].usu*0.4); } for(m=0;m<n;m++)/*輸出結構變數內容*/ { printf("%s %s %d %d %d %.2lf\n",stu[m].name,stu[m].ID,stu[m].mid,stu[m].end,stu[m].usu,stu[m].all); } for(i=0;i<=n;i++) { max=i; for(j=i+1;j<n;j++) if(stu[j].all>stu[max].all) max=j; SWAP(stu[i],stu[max],t); } printf("\n排序後的成績輸出:\n"); for(m=0;m<n;m++)/*輸出結構變數內容*/ { printf("%s %s %d %d %d %.2lf\n",stu[m].name,stu[m].ID,stu[m].mid,stu[m].end,stu[m].usu,stu[m].all); }
//system("PAUSE"); return 0; }
|