字符串排序试题的答案,试题请参考附件
 
#include"stdio.h"
#include"string.h"
void strsort(char str[][20],int n); //声明排序函数
void main()
{
 int i=0;
 char str[10][20];    //定义一个二维数组用于接收用户所输入的字符串
 printf("请输入若干个字符串,最多十个,按“!”结束:\n");
 do
 {
  printf("请输入第%d个字符串:",i+1);
  scanf("%s",&str[i]);  //接收用户所输入的字符串
  if(strcmp(str[i],"!")==0) //判断用户是否想结束输入,如果是,就跳出循环,停止接收
  {
   break;
  }
  i++;
 }while(i<10);
 strsort(str,i);     //调用排序函数
}
void strsort(char str[][20],int n) //实现排序函数
{
 int i,j;
 char temp[20];
 printf("按升序排序为:\n"); 
 for(i=0;i<n;i++)    //按升序冒泡排序
 {
  for(j=i+1;j<n;j++)   //从它下一个开始比较
  {
   if(stricmp(str[i],str[j])>0)
   {
    strcpy(temp,str[i]);
    strcpy(str[i],str[j]);
    strcpy(str[j],temp);
   }
  }
  printf("%d   %s\n",i+1,str[i]); //j=i 或者 j=i+1,可以在此输出,如果j=0,则需要在排序外输出
 }
 printf("按降序排序为:\n");
 for(i=0;i<n;i++)    //按降序冒泡排序
 {
  for(j=i+1;j<n;j++)
  {
   if(stricmp(str[i],str[j])<0)
   {
    strcpy(temp,str[i]);
    strcpy(str[i],str[j]);
    strcpy(str[j],temp);
   }
  }
  printf("%d   %s\n",i+1,str[i]);
 }
}