56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
#include<stdio.h>
|
|
#include<stdlib.h>
|
|
#include<string.h>
|
|
|
|
typedef struct game {
|
|
char name[8]; /* 參賽者姓名 */
|
|
int score; /* 得分 */
|
|
}GAME;
|
|
|
|
|
|
int main(){
|
|
|
|
int i=0 ,j=0 ,n ;
|
|
GAME temp;
|
|
char input[20];
|
|
GAME * bowling = (GAME*)malloc(sizeof(GAME));
|
|
printf("輸入參賽者資訊\n");
|
|
while(1){
|
|
|
|
printf("第%d位參賽者名字 得分 => ",i+1);
|
|
|
|
// fgets(input,sizeof(input),stdin);
|
|
if(fgets(input,sizeof(input),stdin) == NULL||(strcmp(input,"\n")) == 0 ){
|
|
break;
|
|
}
|
|
|
|
bowling = (GAME*)realloc(bowling ,(i+1)* sizeof(GAME));
|
|
sscanf(input,"%s%d",bowling[i].name,&bowling[i].score);
|
|
i++;
|
|
n=i;
|
|
}
|
|
|
|
for(i=0;i<n;i++){
|
|
for(j=0;j<n-i-1;j++){
|
|
if(bowling[j].score<bowling[j+1].score){
|
|
temp = bowling[j+1];
|
|
bowling[j+1]=bowling[j];
|
|
bowling[j]=temp;
|
|
}
|
|
}
|
|
}
|
|
printf("成績排行\n");
|
|
printf("==============\n");
|
|
for(i=0;i<n;i++){
|
|
if(i+1==1) printf("%d. %s\t%d 冠軍\n",i+1,bowling[i].name,bowling[i].score);
|
|
else if(i+1==2) printf("%d. %s\t%d 亞軍\n",i+1,bowling[i].name,bowling[i].score);
|
|
else if(i+1==3) printf("%d. %s\t%d 季軍\n",i+1,bowling[i].name,bowling[i].score);
|
|
else
|
|
printf("%d. %s\t%d\n",i+1,bowling[i].name,bowling[i].score);
|
|
}
|
|
|
|
free(bowling);
|
|
return 0 ;
|
|
}
|
|
|