C 字符串数组排序的小例子

 更新时间:2013年03月24日 22:16:58   作者:  
C 字符串数组排序的小例子,需要的朋友可以参考一下

复制代码 代码如下:

#include<stdio.h>
#include<string.h>
#include <malloc.h>
void q_sortB(char str[20][20], int n);
void qs(char str[20][20],int n);

void main() {
    int i, n;
    char str[20][20] = { { "Adam" }, { "Bob" }, { "Dimen" }, { "Colin" }, {
            "Correal" }, { "Sick" }, { "Rachel" } };

    char * str1[20]= { { "Adam" }, { "Bob" }, { "Dimen" }, { "Colin" },
            { "Correal" }, { "Sick" }, { "Rachel" } };
    qs(str,7);
    q_sortB(str, 7);
    for (i = 0; i < 7; i++){
        printf("%s\n", str[i]);
    }


}

void qs(char str[20][20],int n){
    char temp[20];
    int i=0;
    int j=0;
    int min=i;
    for(i=0;i<n-1;i++){
        min=i;
        for(j=i;j<n;j++){//本次找最小值的范围是从i开始  到最末尾
            if(  strcmp(str[j],str[min])==-1  ){
                min=j;
            }
        }
        //此时min指向最小的
        //那么应该把min放在已排序部分的后一个//也就是本次排序的第一个
        strcpy(temp,str[i]);
        strcpy(str[i],str[min]);
        strcpy(str[min],temp);

    }
}

//泡泡
void q_sortB(char str[20][20], int n) {
    char a[20];
    int i, j;
    for (i = 0; i < n-1; i++) {
        for (j = i ; j < n-1; j++)
            if (strcmp(str[j], str[j + 1]) > 0) {
                strcpy(a, str[j]);
                strcpy(str[j], str[j + 1]);
                strcpy(str[j+1], a);
            }
    }

}

相关文章

  • 详解C++中变量的初始化规则

    详解C++中变量的初始化规则

    这篇文章详细介绍了关于C++中变量的初始化规则,C++如果不对变量初始化,可能会导致很多后果,所以学习C++变量初始化规则就很重要了,下面一起来看看
    2016-08-08
  • C++异常捕捉与处理的深入讲解

    C++异常捕捉与处理的深入讲解

    这篇文章主要给你大家介绍了关于C++异常捕捉与处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • C++模拟键盘按键的实例

    C++模拟键盘按键的实例

    今天小编就为大家分享一篇C++模拟键盘按键的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • C++调用Go方法的字符串传递问题及解决方案

    C++调用Go方法的字符串传递问题及解决方案

    这篇文章主要介绍了C++调用Go方法的字符串传递问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 关于C++数组中重复的数字

    关于C++数组中重复的数字

    这篇文章主要介绍得是关于C++数组中重复的数字,文章以问题描述得形式,对问题展开分析用不同得方法去解决问题并附上方法得详细代码,需要的朋友可以参考以下文章得具体内容
    2021-11-11
  • c语言动态内存分配知识点及实例

    c语言动态内存分配知识点及实例

    在本篇文章里小编给大家整理的是关于c语言动态内存分配知识点及实例,需要的朋友们可以学习下。
    2020-03-03
  • C语言实现打砖块游戏

    C语言实现打砖块游戏

    这篇文章主要为大家详细介绍了C语言实现打砖块游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C++中的并行与并发基础与使用详解

    C++中的并行与并发基础与使用详解

    对于多线程来说,这两个概念有很大部分是重叠的。对于很多人来说,它们的意思没有什么区别。其区别主要在于关注点和意图方面(差距甚微)。这两个词都是用来对硬件在同时执行多个任务的方式进行描述的术语,不过并行更加注重性能
    2023-02-02
  • C语言main函数的三种形式实例详解

    C语言main函数的三种形式实例详解

    这篇文章主要介绍了 C语言main函数的三种形式实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C++实现LeetCode(123.买股票的最佳时间之三)

    C++实现LeetCode(123.买股票的最佳时间之三)

    这篇文章主要介绍了C++实现LeetCode(123.买股票的最佳时间之三),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07

最新评论