#include <stdio.h>
#include <string.h>
main()
{int n,r,i,j,m,l,k,x,y,z1,z2,z;
char a[100][100],b[100][100]={"0"},c,d[5];
scanf("%d\n",&n);
for(i=0;i<n;i++)
{ strcpy(a,b);
scanf("%d ",&r);
for(j=0;j<r;j++)
{
scanf("%s ",&a[j]);
m=0;
l=strlen(a[j]);
while(1)
{if(a[j][m]==48) m++;
else break;
}
if(a[j][0]==48) {for(k=0;k<l-m+2;k++) a[j][k]=a[j][k+m-1];}
}
for(x=0;x<r-1;x++)
{for(y=x+1;y<r;y++)
{ z1=strlen(a[x]);
z2=strlen(a[y]);
if(z1<=z2) z=z2;
for(k=0;k<z;k++) { if(a[x][k]>a[y][k]) break;
if(a[x][k]<a[y][k]||(a[y][k]=="\0"||a[x][k]!="\0")) {strcpy(d,a[x]);
strcpy(a[x],a[y]);
strcpy(a[y],d);
break;}
if(a[x][k]=="\0") break;
}
}
}
for(j=0;j<r;j++)
printf("%s",a[j]);
printf("\n");
}
}
#include <string.h>
main()
{int n,r,i,j,m,l,k,x,y,z1,z2,z;
char a[100][100],b[100][100]={"0"},c,d[5];
scanf("%d\n",&n);
for(i=0;i<n;i++)
{ strcpy(a,b);
scanf("%d ",&r);
for(j=0;j<r;j++)
{
scanf("%s ",&a[j]);
m=0;
l=strlen(a[j]);
while(1)
{if(a[j][m]==48) m++;
else break;
}
if(a[j][0]==48) {for(k=0;k<l-m+2;k++) a[j][k]=a[j][k+m-1];}
}
for(x=0;x<r-1;x++)
{for(y=x+1;y<r;y++)
{ z1=strlen(a[x]);
z2=strlen(a[y]);
if(z1<=z2) z=z2;
for(k=0;k<z;k++) { if(a[x][k]>a[y][k]) break;
if(a[x][k]<a[y][k]||(a[y][k]=="\0"||a[x][k]!="\0")) {strcpy(d,a[x]);
strcpy(a[x],a[y]);
strcpy(a[y],d);
break;}
if(a[x][k]=="\0") break;
}
}
}
for(j=0;j<r;j++)
printf("%s",a[j]);
printf("\n");
}
}
基础问题,错误太多
a是二维指针,a[j]是地址,你怎么输入