注意输出格式
左对齐%-10s,右对齐%4
#include <iostream>
#include <string>
#include <algorithm>
#include <string.h>
using namespace std;
struct node{
char name[100];
int num;
int time;
}ren[1000];
bool cmp(struct node a,struct node b)
{
if(a.num==b.num)
{
if(a.time==b.time)
return a.name<b.name;
else
return a.time<b.time;
}
return a.num>b.num;
}
int main()
{
int n,m;
cin>>n>>m;
getchar();
int num=0;
while(scanf("%s",ren[num].name)!=EOF)
{
ren[num].num=0;
ren[num].time=0;
char str[100];
for(int i=0;i<n;i++)
{
scanf("%s",str);
int num1=0;
int num2=0;
int cont=0;
for(int j=0;str[j]!='\0';j++)
{
if(str[j]=='-')
break;
else
{
int z;
if(str[j]=='(')
{
for(z=j+1;str[z]!=')';z++)
{
num2=num2*10+str[z]-'0';
}
j=z++;
}
else
num1=num1*10+str[j]-'0';
}
}
if(num1!=0)
{
ren[num].num++;
ren[num].time+=num1;
if(num2!=0)
{
ren[num].time+=num2*m;
}
}
}
num++;
}
sort(ren,ren+num,cmp);
for(int i=0;i<num;i++)
{
printf("%-10s",ren[i].name);
printf(" %2d",ren[i].num);
printf(" %4d\n",ren[i].time);
}
return 0;
}