[hide][code lang=”c”]
#include <stdio.h>
#include <string.h>
int main()
{
int a;
scanf("%d",&a);
char arr[a][10000];
int i,j;
for (i = 0; i < a; i++) {
scanf("%s",&arr[i]);
}
int flag;
for (i = 0; i < a – 1; i++) //n个字符串,交换(n-1)次
{
flag = 1; //设置标志位,优化冒泡
for (j = 0; j <a – 1 – i; j++)
{
if (strcmp(arr[j], arr[j + 1]) > 0) //常量字符串在空间的地址
{
char str[10000]; //交换地址
strcpy(str,arr[j]);
strcpy(arr[j],arr[j+1]);
strcpy(arr[j+1],str);
flag = 0;
}
}
if (flag) //说明未进入if内部,即尚未交换已经是所需的输出顺序
{
break;
}
}
for(i=0;i<a;i++)
{
printf("%s\n",arr[i]);
}
return 0;
}
[/code][/hide]
本文最后更新于 3098 天前,其中的信息可能已经有所发展或是发生改变。
内容纲要