緇撴瀯浣撴帓搴?
struct student
{
char name[20];
int AC,time;
}
棣栧厛鎸夌収AC錛宼ime錛屽鏋滃墠涓や釜閮界浉鍚屽氨鎸夌収name鐨勫瓧鍏稿簭鎺掑簭銆?br />
榪欎釜璇誨叆寰堢畝鍗曪紝sscanf();榪欎釜鍑芥暟榪樹笉浼氱敤銆?br />
杈撳嚭闇瑕佸悕瀛楀崰10錛岄潬宸︼紝鍒欑敤“%-10s”
鐩存帴璐翠唬鐮侊細WA浜嗕竴嬈★紝涓棿璋冭瘯杈撳嚭鐨勪笢瑗垮繕璁板垹闄や簡銆?br />鎬葷粨錛氬瓧絎︿覆綾婚鐩繕鏄鑷繁鍋氬仛錛岃櫧鐒舵湁浜涘緢鎭跺績錛屾伓蹇冧袱嬈″氨濂戒簡錛佸搱鍝堬紝

#include<stdio.h>
#include<string.h>
#include<math.h>
struct student
{
char name[20];
int AC,time;
} p[1005],temp,tt;
int tot;
int cmp(student a,student b)
{
if (a.AC>b.AC)
return 1;
if (a.AC==b.AC&&a.time<b.time)
return 1;
int i=0;
while (a.AC==b.AC&&a.time==b.time&&i<strlen(a.name)&&i<strlen(b.name))
{
if (a.name[i]<b.name[i])
return 1;
i++;
}
return 0;
}
int qsort(int l,int r) //鑷繁榪樻槸涓嶄範鎯潯鐢╯tl閲岀殑sort()
{
int i,j;
i=l;
j=r;
temp=p[(i+j)/2];
while (i<=j)
{
while (i<=j&&cmp(p[i],temp)) i++;
while (i<=j&&cmp(temp,p[j])) j--;
if (i<=j)
{
tt=p[i];
p[i]=p[j];
p[j]=tt;
i++;
j--;
}
}
if (l<j) qsort(l,j);
if (i<r) qsort(i,r);
return 0;
}
int main()
{
int n,m,i,j,tmp;
char ch;
scanf("%d%d",&n,&m);
tot=0;
while (scanf("%s",&p[0].name)==1&&p[0].name[0]!='0')
{
tot++;
p[tot]=p[0];
p[tot].AC=0;
p[tot].time=0;
for (i=1; i<=n ; i++ )
{
scanf("%d",&tmp);
if (tmp>0)
{
p[tot].AC++;
p[tot].time+=tmp;
ch=getchar();
if (ch=='(')
{
scanf("%d",&tmp);
p[tot].time+=m*tmp;
getchar();
}
}
}
}
qsort(1,tot);
for (i=1; i<=tot ; i++ )
{
printf("%-10s %2d %4d\n",p[i].name,p[i].AC,p[i].time);
}
return 0;
}

]]>