题目:从键盘任意输入n个字符串(0<n<40,每个字符串长度不大于80个字符),将这n个字符串按升序进行排序后输出。要求,排序函数单独定义
【输入样例】
3
EFG
BCD
ABC
【输出样例】
ABC
BCD
EFG
#include <stdio.h>
#define ARR 40
#define LONG 80
int n=0;//变长数组的长度,C99 特性,不想用malloc,偷个懒
void sort(char (*b)[80]){//注意这个参数
char l[n][LONG];
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(strcmp(b[i],b[j])>0)
{
strcpy(l[0],b[i]);
strcpy(b[i],b[j]);
strcpy(b[j],l[0]);
}
}
}
}
int main(void){
while (n<=0||n>ARR){
scanf("%d",&n);
fflush(stdin);
}
char a[n][LONG];
for (int i=0;i<n;i++){
for (int j=0;j<80-1;j++){
a[i][j] = getchar();
if (a[i][j] =='\n'){
a[i][j] ='\0';
break;
}
};
fflush(stdin);
}
char (*c)[80]=a;
sort(c);
for(int i=0;i<n;i++)
puts(a[i]);
}