Chinaunix首页 | 论坛 | 博客
  • 博客访问: 124530
  • 博文数量: 52
  • 博客积分: 2200
  • 博客等级: 大尉
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 15:00
文章分类

全部博文(52)

文章存档

2011年(1)

2009年(51)

我的朋友

分类: C/C++

2009-11-06 15:59:09

/*=============================================================
              目的:主函数中输入10个等长的字符串。用另一个函数对他们排序,然后在主函数输出这10个已排好的字符串
               
             算法分析:1、 应用指指针数组作为函数参数传递
                       2、定义一个排序函数实现对10个等长字符串的排序
                       3、因指针可以实现多个数值的改变,主函数中直接输出排序后的字符串
                       4、
==============================================================
              作者:最后的村长
              时间:2009年10月12日
              工具:DEV C++ 4.9.9.2
              version:1.0
==============================================================*/

#include <stdio.h>
#include <stdlib.h>
#include <String.h>
#define N 10
#define M 10
void compare(char *p[],int n);
/*=============================================================*/
int main()
{
    char str[N][M];
    puts("请输入10个等长的字符串:\n");
    for(int i=0;i<N;i++)
    {
            printf("\n第%d个字符串为:",i+1);
            gets(str[i]);
    }
    //定义指针数组

    char *p[N];
    //初始化指针数组

    for(int i=0;i<N;i++)
    {
            p[i]=str[i];
    }
    //对10个字符串进行排序

    compare(p,N);
    //输出排序后的字符串

    puts("排序后的字符串为:\n");
    for(int i=0;i<N;i++)
    {
            printf("\n第%d个字符串为:%s",i+1,p[i]);
    }
    system("PAUSE");
    return 0;
}
//排序函数

void compare(char *p[],int n)
{
     char *temp;
     //以冒泡法进行10个字符串的排序

     for(int i=0;i<n-1;i++)
     {
             for(int j=i+1;j<n;j++)
             if(strcmp(p[i],p[j])>0)
             {temp=p[i];p[i]=p[j];p[j]=temp;}
             
      }
}


阅读(864) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~