c语言 字符串排序

来源:百度知道 编辑:UC知道 时间:2024/05/11 21:41:44
#include <stdio.h>
#include <string.h>
#define MAXNUM 100
#define MAXLEN 20
main()
{
char s1[MAXNUM][MAXLEN],max[MAXLEN];
int num=1,i,j,exchange;

for (i=0;i<num;(i++,num++))
{printf("请输入第%d个国家名字:\n",i+1);
gets(s1[i]);
if(s1[i][0]==32) break;
}
strcpy(max,s1);
puts(max);
for (i=0;i<num-1;i++)//这里开始就是冒泡排序,但我想把字符串排序,但赋值这里不知道怎么错了,麻烦大家看下,给点提示就可以了,谢谢!
{
exchange=0;
for(j=num-2;j>i;j--)
if (strcmp(s1[i],s1[i+1])>0)
{
strcpy(max,s1[j+1]);
strcpy(s1[j+1],s1[j]);
strcpy(s1[j],max);
exchange=1;
}
if(!exchange)
return;
}
printf("按大小输出国家名字:");
for (i=0;i<num;i++)
printf("%s\n",s1[i]);

}

/*字符串冒泡排序,以输入的字符串为空格为结束*/
#include <stdio.h>
#include <string.h>
#define MAXNUM 5
#define MAXLEN 20
main()
{
char s1[MAXNUM][MAXLEN],max[MAXLEN];
int num=1,i,j,exchange;

for (i=0;i<num;(i++,num++))
{
printf("请输入第%d个国家名字:\n",i+1);
gets(s1[i]);
if(s1[i][0]==32) break;
}
strcpy(max,s1[0]);
puts(max);

for (i=0;i<num-2;i++)/*这里开始就是冒泡排序 */
{
exchange=0;
for(j=0;j<num-2;j++)
if (strcmp(s1[j],s1[j+1])>0)
{
strcpy(max,s1[j]);
strcpy(s1[j],s1[j+1]);
strcpy(s1[j+1],max);
exchange=1;
}

if(!exchange)
break;
}
printf("按大小输出国家名字:");
for (i=0;i<num-1;i++)
printf("%s\n",s1[i]);
g