zoukankan      html  css  js  c++  java
  • 对5个国家的名称进行排序详细解析

    注:代码通过TDM-GCC4.9.2编译通过

    原题:有"China","America","Australia","France","Germany"五个国名。设计一个程序使其按字母顺序进行排序并输出结果。

    思路:应用传统的排序方法,将字符串保存在字符数组中进行交换,将使得程序变得复杂,难于编写检查。可以将其都保存在字符串指针数组中。排序时只要套用原来一维数组的排序方法,将两个字符串指针在指针数组中的顺序进行交换,程序就变得十分简单。

    设计:编写2个自定义函数:void sort(char *name[])用于排序,void prins(char *put[])用于输出。在main()函数中对字符串进行赋值,并且依次调用两个自定义函数,完成设计。

    代码:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 #define N 5 
     5 
     6 void sort(char *name[]) //排序
     7 {
     8     int i,j;
     9     char *sp; //用于临时交换
    10     for(i = 0;i < N-1;i++) //利用选择排序法进行排序
    11     {
    12         for(j = i+1;j < N;j++)
    13         {
    14             if(strcmp(name[i],name[j]) > 0)
    15                         { //当name[i]>name[j]时进行交换来排序①
    16                 sp = name[i];
    17                 name[i] = name[i+1];
    18                 name[i+1] = sp;
    19             }
    20         }
    21     }
    22 }
    23 
    24 void prins(char *put[]) //输出
    25 {
    26     int i;
    27     for(i = 0;i < N;i++)
    28         printf("%s ",put[i]); //不能写*put[i]②
    29 }
    30 
    31 int main() {
    32     char *spa[] = {"China","America","Australia","France","Germany"};
    33     sort(spa);
    34     prins(spa);
    35     getch();
    36     return 0;
    37 }                    

    运行结果:America Australia China France Germany

    解释:①strcmp(str1,str2)中,

    当str1 > str2时,函数值 > 0;

    当str1 = str2时,函数值 = 0;

    当str1 < str2时,函数值 < 0;

       ②因为put[i]是一个字符串指针,字符串指针指向一个字符常量的地址,由printf()的函数原型可知这里不能用*put[i],否则会出错。

    总结:要明确字符串指针的原理,通过构建指针数组来进行字符串指针直接的顺序互换,套用一维数组的排序方法就可以进行字符串指针的排序,达到目的。

  • 相关阅读:
    1.4.2.3. SETUP(Core Data 应用程序实践指南)
    1.4.2.2. PATHS(Core Data 应用程序实践指南)
    1.4.2.1. FILES(Core Data 应用程序实践指南)
    1.4.2. 实现 Core Data Helper 类(Core Data 应用程序实践指南)
    1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
    1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
    1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
    1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
    php验证邮箱是否合法
    如何使js函数异步执行
  • 原文地址:https://www.cnblogs.com/mrblug/p/5706990.html
Copyright © 2011-2022 走看看