首页 > 技术文章 > 第四节 一维数组

xlsn0w 2015-10-01 17:00 原文

#import <Foundation/Foundation.h>

 

int main(int argc, const char * argv[]) {

    

    //刚开始的序列 18 58 7 37 22

    //第一趟:

    //第一次:18 58 7 37 22

    //第二次:18 7 58 37 22

    //第三次:18 7 37 58 22

    //第四次:18 7 37 22 58 第一趟得到了一个最大的数为58

    

    //第二趟:

    //第一次:7 18 37 22

    //第二次:7 18 37 22

    //第三次:7 18 22 37 第二趟得到了一个第二大的数37

    

    //第三趟:

    //第一次:7 18 22

    //第二次:7 18 22 第三趟得到了一个第三大的数22

    

    //第四趟:

    //第一次:7 18 第四趟出结果得到了一个第四大的数,自然而然剩下的那个数就是最小的。排序结束

    //最终的排序结果为 7 18 22 37 58

    

    //冒泡排序的原则是:比较相邻两个数的大小,如果前面的大于后面的,交换位置,否则位置不动,依次比较完成之后,从每一趟中都可以得到这一趟比较的所有数中最大的那个数。

    //count 表示 数组容量。array 代表数组名

    //这个是好理解版本

    /*

    for (int i = 1; i < count; i ++) {//控制趟数

        for (int j = 0; j < count - i; j ++) {//控制的是每一趟比较多少次

            if (array[j] > array[j + 1]) {

                int temp = array[j];

                array[j] = array[j + 1];

                array[j + 1] = temp;

            }

        }

    }

    */

    

    /*

    for (int i = 0; i < count - 1; i ++) {//控制趟数

        for (int j = 0; j < count - i - 1; j ++) {//控制的是每一趟比较多少次

            if (array[j] > array[j + 1]) {

                int temp = array[j];

                array[j] = array[j + 1];

                array[j + 1] = temp;

            }

        }

    }

     */

    

    //定义一个具有十个元素的整型数组,随机赋值(范围2040),并且按照升序 输出 所有的元素。

    /*

    int array[10] = {0};

    //1、通过for循环给数组元素进行随机赋值

    for (int i = 0; i < 10; i ++) {

        array[i] = arc4random() % (40 - 20 + 1) + 20;

        printf("%d\t",array[i]);

    }

    

    printf("\n");

    

    //2、冒泡排序

    for (int i = 0; i < 10 - 1; i ++) {

        for (int j = 0; j < 10 - 1 - i; j ++) {

            if (array[j] > array[j + 1]) {

                int temp = array[j];

                array[j] = array[j + 1];

                array[j + 1] = temp;

            }

        }

    }

    

    //通过for循环将排序好后的数组元素打印出来

    for (int i = 0; i < 10; i ++) {

        printf("%d\t",array[i]);

    }

    */

    

    //字符数组

    //字符数组 就是存放 字符类型元素的容器。string

    /*

    char str1[30] = {'i', 'P', 'h', 'o', 'n', 'e'};

    

    char str2[30] = "iPhone";//这种方式 是我们以后声明字符数组的常用方式。

    

    char str3[30] = {'i', 'P', 'h', 'o', 'n', 'e', '\0'};

    //C语言中的字符串就是以 '\0' 结尾的字符数组。

    

    //打印C语言字符串 占位符为 %s

    printf("str1 = %s, str2 = %s, str3 = %s",str1, str2, str3);

    */

    

    //字符串操作函数

    //1、计算字符串长度的函数 strlen();

    char str[30] = "iPhone6sPlus";

    char str1[10] = {'i', 'P', 'h', 'o', '\0'};

//    int a = 10;

//    a = 11;

//    

//    const int b = 11;

//    b = 12;

    

    //字符串长度的类型为无符号的长整型,打印占位符为%lu

    unsigned long strLength = strlen(str);

    printf("strLength is %lu,%lu",strLength,strlen(str1));

    

    //2、字符串拷贝函数 strcpy

    char str2[30] = {0};

    char str3[30] = "i want an iPhone6sPlus";

    strcpy(str2, str3);//str3里面的内容拷贝到str2里面。

    printf("str2 = %s, str3 = %s",str2, str3);

    

    //3、字符串拼接函数 strcat

    char str4[255] = "marry beautiful girl";

    char str5[30] = "become a boss";

    strcat(str4, str5);

    printf("str4 = %s",str4);

    

    //4、字符串比较函数 strcmp

    char str6[30] = "i want a girlFriend";

    char str7[30] = "i want a boyFriend";

   

    //result的结果为 两个字符串首位不相同的字符 ascii码值的差值。

    int result = strcmp(str6, str7);

    printf("result = %d",result);

    

    if (result > 0) {

        char strTemp[30] = {0};

        //字符串的交换需要借助拷贝函数,不能直接赋值

        strcpy(strTemp, str6);

        strcpy(str6, str7);

        strcpy(str7, strTemp);

    }

    

    /**

     *  将字符串 倒转:

     例如:“afjnpue”

     转变 成字符串“eupnjfa”

     (注:是改变 字符串本身,不是 反向输出)

     */

    

    char string[30] = "fangyuanbaili";

    

    int length = (int)strlen(string);

    

    printf("\n");

    

    for (int i = 0; i < length / 2; i ++) {

        char temp = string[i];

        string[i] = string[length - 1 - i];

        string[length - 1 - i] = temp;

    }

    

    printf("%s",string);

    

//    for (int i = length - 1; i >= 0; i --) {

//        printf("%c",string[i]);

//    }

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    

    return 0;

}

推荐阅读