我采用了冒泡排序为什么只能交换邻近的两组数组,各位能帮我看看吗。
编写一个函数,利用指针将输入的多个字符串按长度升序排序
void StrSort(char *p[N],int n)
【输入形式】
循环输入四个字符串。每输入完一个按回车。
【输出形式】
输出排序后的四个字符串。
【样例输入】
HU
KOBE
BRYANT
CCZU
【样例输出】
HU
KOBE
CCZU
BRYANT
#include <stdio.h>
#include <string.h>
#define N 4
void StrSort(char *p[N],int n)
{
int num[4],i,j ;
char t[100];
for(i = 0; i< 4 ; i++)
{
num[i] = strlen(p[i]);
}
for(i = 0 ; i<3;i++)
{
for(j = 0 ; j<3-i ;j++)
{
if(num[j] >num[j+1] )
{
strcpy(t , p[j]);
strcpy(p[j] , p[j+1]);
strcpy(p[j+1] , t);
}
}
}
}
int main(void)
{
char a[100], b[100] ,c[100], d[100];
char *str[4] = {a,b,c,d};
int i;
for( i = 0 ; i < 4; i++) gets(str[i]);
putchar('\n');
StrSort(str, 0);
for( i= 0 ; i<4 ; i++)
{
puts(str[i]);
}
return 0;
}