第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;
}