#include "stdio.h"
void main()
{char b[20],a[5][20];
int k,i,j;
printf("input:\n");
for(i=0;i<5;i++)
gets(a[i]);
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
for(k=0;k<20;k++)
if(a[i][k]>a[j][k])
{ strcpy(b,a[j]);
strcpy(a[j],a[i]);
strcpy(a[i],b);
break;}
else if(a[i][k]<a[j][k])
break;
}}
for(i=0;i<5;i++)
puts(a[i]);
}
程序如上,但如果去掉:else if(a[i][k]<a[j][k])
break;
变成:
#include "stdio.h"
void main()
{char b[20],a[5][20];
int k,i,j;
printf("input:\n");
for(i=0;i<5;i++)
gets(a[i]);
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
for(k=0;k<20;k++)
if(a[i][k]>a[j][k])
{ strcpy(b,a[j]);
strcpy(a[j],a[i]);
strcpy(a[i],b);
break;}
}}
for(i=0;i<5;i++)
puts(a[i]);
}
那么它输出的结果会是按什么情况排列的呢???
也就是说不是按从小到大的顺序,那是什么规律呢??还是没什么规律???
它输出结果按的是什么原理???谢谢!我是初学者,表达不对之处,还请提出,谢谢!!!
两个程序运行的结果不一样诶!!