zoukankan      html  css  js  c++  java
  • 第四节 一维数组

    #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 ",array[i]);

        }

        

        printf(" ");

        

        //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 ",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', ''};

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

        

        //打印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', ''};

    //    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(" ");

        

        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;

    }

  • 相关阅读:
    使用CustomValidate自定义验证控件
    C#中金额的大小写转换
    Andriod出错之Unable to build: the file dx.jar was not loaded from the SDK folder!
    VC 编写的打字练习
    机房工作笔记Ping只有单向通
    web服务协同学习笔记(1)
    Dll 学习3 将MDI子窗口封装在DLL中
    机房工作学习文件共享
    Andriod出错之Failed to find an AVD compatible with target 'Android 2.2'
    Andriod出错之wrapper was not properly loaded first
  • 原文地址:https://www.cnblogs.com/xlsn0w/p/4851246.html
Copyright © 2011-2022 走看看