#include <stdio.h>
#include <cstdlib>
main()
{
char a[]="abcd",b[]="aabc",c[]="bbde",d[]="cacc",e[]="baaa";
char *p[5]={a,b,c,d,e},*t;
for(int i=0;i<4;i++)
for(int j=i+1;j<5;j++)
{
if(*p[i]==*p[j]) //判断第一个字母是否相同
{ p[i]++,p[j]++; //如果相同,字母移动到第2位
if(*p[i]<*p[j]) //接着比较字母的大小
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
p[i]--,p[j]--; //比较结束后,指针重新指向第一个字母
}
if(*p[i]<*p[j]) //比后两组较字母的大小
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}
for(int i=0;i<5;i++)//打印字母
puts(p[i]);
system("pause");
}
结果为:cacc; bbde; baaa; abcd; aabc; 请各位高手帮我分析一下这个结果是怎样得出来的 要详步骤 谢谢
for(int i=0;i<4;i++)
for(int j=i+1;j<5;j++)
请描述一下循环步骤