69,368
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main()
{
int n,m,min;
int i,j,k,p,nei,wai,c[101];
char dna[101][51];
int temp;
int a[51];
scanf("%d %d",&n,&m);
for(i=1;i <=m;i++)
{
scanf("%s",dna[i]);
}
for(i=1;i <=m;i++)
{
c[i]=i;
}
for(k=1;k <=m;k++)
{
for(j=n-1;j>=0;j--)
{
for(p=1;p <10;p++) //这应该是n-1
{
if(dna[k][j] <dna[k][j-p])
{
a[k]++;
}
}
}
}
for(i=1;i <m;i++)
{
min=i;
for(j=i+1;j <m+1;j++)
if(a[j] <a[min]) //少了中括号
min=j ;
temp=a[min];
a[min]=a[i];
a[i]=temp;
temp=c[min];
c[min]=c[i];
c[i]=temp;
} //这个排序方法不稳定,要用稳定的排序方法,因为题目要求
//Since two strings can be equally sorted, then output them according to the orginal order
printf("\n"); //要去掉
for(i=1;i <=m;i++)
{
printf("%s\n",dna[c[i]]);
}
return 0;
}
printf("\n"); //去掉
for(i=1;i <=m;i++)
{
printf("%s\n",dna[c[i]]);
}
return 0;
}
#include <stdio.h>
int main()
{
int n,m,min;
int i,j,k,p,nei,wai,c[101];
char dna[101][51];
int temp;
int a[51];
scanf("%d%d",&n,&m); //空格去掉试试!
for(i=1;i <=m;i++)
{
scanf("%s",dna[i]);
}
for(i=1;i <=m;i++)
{
c[i]=i;
}
for(k=1;k <=m;k++)
{
for(j=n-1;j>=0;j--)
{
for(p=1;p <10;p++)
{
if(dna[k][j] <dna[k][j-p])
{
a[k]++;
}
}
}
}
for(i=1;i <m;i++)
{
min=i;
for(j=i+1;j <m+1;j++)
if(a[j] <a[min])
min=j ;
temp=a[min];
a[min]=a[i];
a[i]=temp;
temp=c[min];
c[min]=c[i];
c[i]=temp;
}
printf("\n");
for(i=1;i <=m;i++)
{
printf("%s\n",dna[c[i]]);
}
getch();
return 0;
}