输入n个字符串,将各个字符串排序后的结果按顺序输出。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
char a[100][200];
int i,j,n=10;
void c_sort()
{
char temp[200] = {0};
for (j=0;j<n ;j++ )
for(i=0; i<n-j-1;i++)
{
if ( strlen( a[i] ) > strlen (a[i + 1]) )
{
strcpy( temp,a[i] );
strcpy( a[i], a[i+1]);
strcpy( a[i+1], temp);
}
else if ( strlen( a[i] ) == strlen (a[i + 1]) )
{
if ( strcmp( a[i] , a[i + 1] ) > 0 )
{
strcpy( temp,a[i] );
strcpy( a[i], a[i+1]);
strcpy( a[i+1], temp);
}
}
}
/*for (j=0;j<n ;j++ )
for(i=0; i<n-j-1;i++)
{
if ( strcmp( a[i] , a[i + 1] ) > 0 )
{
strcpy( temp,a[i] );
strcpy( a[i], a[i+1]);
strcpy( a[i+1], temp);
}
}*/
}
int main()
{
printf("请输入字符串个数n的值:\n");
scanf("%d",&n);
getchar();
for (i=0; i<n; i++)
{
printf("\n第%d个字符:",i+1);
gets(a[i]);
}
printf("\n排序前:\n");
for (i=0;i<n ;i++ )
{
puts(a[i]);
}
c_sort();
printf("\n排序后:\n");
for (i=0; i< n;i++ )
{
puts(a[i]);
}
return 0;
}