高悬赏!!C语言用冒泡排序法对n个字符串进行排序,要求:定义二维数组存放字符串!!!

如题所述

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int n,i,j;
char **str;
char s[100];
printf("请输入n:");
scanf("%d",&n);
getchar();
str=(char**)malloc(sizeof(char*)*n);
for(i=0;i<n;i++)
{
str[i]=(char*)malloc(sizeof(char)*100);
printf("请输入第%d个字符串\n",i+1);
gets(str[i]);
}
puts("排序后的字符串为:");
for(i=0;i<n;i++)
{
for(j=i;j<n-1;j++)
{
if(strcmp(str[j+1],str[j])<0)
{
strcpy(s,str[j+1]);
strcpy(str[j+1],str[j]);
strcpy(str[j],s);
}
}
}
for(i=0;i<n;i++)
{
puts(str[i]);
}
for(i=0;i<n;i++)
{
free(str[i]);
str[i]=NULL;
}
free(str);
str=NULL;
return 0;
}

楼主看看满足条件不?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-03
字符串多长?追问

不定

追答

一定要用冒泡排序吗?其他排序不可以?从大到小还是从小到大

相似回答