注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 [零基础学JAVA]Java SE面..
 帮助

字符串排序


2007-11-19 21:24:20
 标签:字符串 排序   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://youxue.blog.51cto.com/231393/51399
字符串排序试题的答案,试题请参考附件
 
#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]);
 }
}

本文出自 “飞翔我的世界” 博客,请务必保留此出处http://youxue.blog.51cto.com/231393/51399


附件下载:
  试题




    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: