一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串指针实现。

帮我改一下

#include<stdio.h>
#include<string.h>
int main()
{
void sort(char (*p)[5]);
char a[5][5];
int i;
for(i=0;i<5;i++)
gets(a[i]);
sort(a);
}
void sort(char (*p)[5])
{
char a[5];
int i,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{if(p[i][j]>p[i+1][j])
{strcpy(a,p[i]);
strcpy(p[i],p[i+1]);
strcpy(p[i+1],a);
}
break;
}
for(i=0;i<5;i++)
puts(p[i]);
printf("\n");
}

第1个回答  推荐于2017-10-06
#include<stdio.h>
#include<string.h>
int main()
{
void sort(char (*p)[20]);
char a[5][20];
int i;
for(i=0;i<5;i++)
gets(a[i]);
sort(a);
}
void sort(char (*p)[20])
{
char a[20];
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5-i-1;j++)
{
if(strcmp(p[j],p[j+1])>0)
{
strcpy(a,p[j]);
strcpy(p[j],p[j+1]);
strcpy(p[j+1],a);
}
}
printf("after sorted:\n");
for(i=0;i<5;i++)
puts(p[i]);
printf("\n");
}本回答被提问者和网友采纳
相似回答