c语言:在主函数中输入n个的字符串。用另一函数用指针方法对它们按照ASCII码从小到大

问题描述
在主函数中输入n个的字符串。用另一函数用指针方法对它们按照ASCII码从小到大的顺序排序。然后在主函数输出这n个已排好序的字符串。(n不大于10,每个字符串的长度不大于80)
输入形式
输入n+1行,第一行是正整数n,第二行到第n+1行是n个字符串。
输出形式
输出n行,给出排序好的n个字符串。
样例输入
5
Bbbb b
Aaaa a
Ccccc c
Eeeee e
Ddddd
样例输出
Aaaa a
Bbbb b
Ccccc c
Ddddd
Eeeee e

第1个回答  推荐于2018-03-09
#include <stdio.h>
#include <string.h>
void sort(char a[][100],int n)
{
int i,j;
char t[100];
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-1-i; j++)
if(strcmp(a[j],a[j+1]) > 0)
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
}
}
int main(void)
{
char a[100][100];
int n;
int i;
scanf("%d",&n);
getchar();
for(i = 0; i < n ;i++)
gets(a[i]);
sort(a,n);
for(i = 0; i < n; i++)
puts(a[i]);

}本回答被网友采纳
第2个回答  2015-12-13
下面是用另一函数用指针方法对它们按照ASCII码从小到大的程序:
#include<stdio.h>
#include<string.h>
void sort(char *p[],int n)
{int i,j;
char *q;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(strcmp(p[j],p[j+1])>0)
{q=p[j];p[j]=p[j+1];p[j+1]=q;}
}
int main()
{
char s[100][20],*p[100];
int i,n;
scanf("%d",&n);
fflush(stdin);
for(i=0;i<n;i++)
{
gets(s[i]);
p[i]=s[i];
}
printf("After sort:\n");
sort(p,n);
for(i=0;i<n;i++)
puts(p[i]);
getch();
return 0;
}
相似回答