void z(char b[100],char a[100][100],int n,int c[100])
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(c[i]==c[j])
{
if(a[i][0]<a[j][0])
{
temp=c[i];
c[i]=c[j];
c[j]=temp;
strcpy(b,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],b);
}
}
if(c[i]>c[j])
{
temp=c[i];
c[i]=c[j];
c[j]=temp;
strcpy(b,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],b);
}
}
}
for(i=0;i<n;i++)
{
printf("%s %d\n",a[i],c[i]);
}
}
int main()
{
int i,j,n,temp;
char a[100][100],b[100];
int c[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %d",b,&c[i]);
strcpy(a[i],b);
}
z(b,a,n,c);
}
错误原因很简单,题目要求你成绩相同按照名字字典序排序,你的程序没有做到这一点。
大神好厉害啊,一下就看出来了!
检查看看是不是scanf中间空格导致的
空格不影响吧 以前有的也是用空格
代码块、
– Shendu.CC 6年前