请帮忙编程,急用,谢谢! 给定一组字符串(不含空格),按照字典序(从小到大)排序以后输出

来源:百度知道 编辑:UC知道 时间:2024/05/05 20:01:39
若干行(少于100),每行一个字符串(不含空格),每个字符串最大长度80

排序以后的结果,每行一个字符串

例如:Sample Input

Marry
Tom
John

Sample Output

John
Marry
Tom

用C语言

已经编译运行确认过:

#include<stdio.h>
#include<conio.h>

#include <string.h>
#include <stdlib.h>

#define LONG 80

int N;

void MyCmp(char **x);

void main()
{
char *a[80];
int i;

printf("请输入要排序的字符串数目(不超过100):");
scanf("%d",&N);

for(i=0;i<N;i++) //初始化
{
a[i]=(char *)malloc(LONG);
}

for(i=0;i<N;i++) //输入
{
printf("第%d个字符串:",i+1);
scanf("%s",a[i]);
}

MyCmp(a); //排序

for(i=0;i<N;i++) //输出
{
printf("%s\n",a[i]);
}

getch();
}

void MyCmp(char **x)
{
int i,j;
char *temp=(char *)malloc(LONG);

for(i=0;i<N-1;i++)
{
for(j=0;j<N-1-i;j++)
{
if(strcmp(x[j],x[j+1])>0)
{
strcpy(temp,x[j]);
strcpy(x[j