题目描述 Description
又要到考试了,Ljw决定放松一下,就打开电视,看见了篮球赛,他立即想到了每年的NBA总冠军队伍。由于复习紧张,他只记起了一部分,记忆的内容是正确的,可能不是按时间顺序排列的,记忆的内容可能有重复。
现在请求学过编程的你帮助Ljw,按时间顺序输出总冠军的球队(不能重复)。
(NBA从1947A.D到2009A.D)
标签:
题目背景 Background
输入样例(nba.in):
3
Boston 1963
Boston 1959
Philly 1947
输出样例(nba.out):
1947 Philly
1959 Boston
1963 Boston
思路:没时间了,下次再写,先上代码
代码如下:
1 #include <stdio.h> 2 #include <string.h> 3 struct stu 4 { 5 char num[50]; 6 int score; 7 }; 8 int main() 9 { 10 int n,i,j,max=0,kk,flag,shuzi[100],aaaaa=‘a‘,ll=-1; 11 struct stu a[105],t; 12 //freopen("nba.in","r",stdin); 13 //freopen("nba.out","w",stdout); 14 scanf("%d",&n); 15 for(i=0;i<n;i++) 16 { 17 ll++; 18 max=0; 19 j=0; 20 scanf("%c",&aaaaa); 21 while(aaaaa!=‘\n‘) 22 { 23 24 if(aaaaa>=‘0‘&&aaaaa<=‘9‘)//是数字 25 { 26 shuzi[j]=aaaaa; 27 j++; 28 } 29 else //是字母 30 { 31 a[i].num[max]=aaaaa; 32 max++; 33 } 34 scanf("%c",&aaaaa); 35 } 36 a[i].num[max]=‘\0‘; 37 a[ll].score=0; 38 for(kk=0;kk<j;kk++)//转化数字 39 { 40 a[ll].score=a[ll].score*10+shuzi[kk]-‘0‘; 41 } 42 } 43 for(i=1;i<n;i++) 44 { 45 flag=1; 46 for(j=0;j<n-i;j++)//排序 47 { 48 if(a[j].score>a[j+1].score) 49 { 50 flag=0; 51 t=a[j]; 52 a[j]=a[j+1]; 53 a[j+1]=t; 54 } 55 } 56 if(flag) break; 57 } 58 printf("\n"); 59 for(i=0;i<n;i++) 60 { 61 if(a[i].score!=a[i+1].score||strcmp(a[i].num,a[i+1].num)!=0) 62 { 63 printf("%d %s\n",a[i].score,a[i].num); 64 } 65 } 66 return 0; 67 }
标签:
原文地址:http://www.cnblogs.com/geek-007/p/4722417.html