個人相片
10030306仁06沈婷筠
100資專0306 沈婷筠發表於2012年 03月 14日(三.) 17:25
 
/*
作者:一仁 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;
}