将三个给定的字符串依据长度从小到大显示出来,结果却只是第一行和第三行调换了位置,求大佬看看代码问题出在哪里。。
#include
#include
int main(void)
{
int i, j;
int n = 3;
char abb[3][20] =
{
"333",
"22",
"1"
};
char temp[20];
for (i = 0; i < n; i++)
{
for (j = i + 1; j < n; j++)
{
if (strlen(abb[i]) - strlen(abb[j])>0)
{
strcpy(temp, abb[i]);
strcpy(abb[i],abb[j]);
strcpy(abb[j], temp);
}
}
}
for (i = 0; i < n; i++)
{
puts(abb[i]);
printf("%d\n", strlen(abb[i]));
}
getchar();
return 0;
}