我的IOS学习历程-第四天

    

 //  数组的定义: 保存同种类型的多个数据

    

    //  声明一个数组 保存年龄

    //  [3] 3 代表的是数组中元素的个数

    //  { }中的值 是数组中元素的初值 用逗号隔开

    //  int 表示数组中每一个元素的数据类型

    //  声明数组公式

    //  数据类型 数组的名字[常量表达式] = {初值1, 初值2, ......};

    int ageArray[3] = {27, 19, 22};

    

    //  数组的元素个数可以用变量来表示 但是不可以进行初始化

    int count = 5;

    int array[count] = {1, 2, 3, 7, 9};

    

      如果声明数组时,数组元素的个数大于给出的数组元素初值的个数 系统自动补0

    int array2[5] = {2, 5, 7};

    

    int array3[5] = {0};//  相当于int array3[5] = {0, 0, 0, 0, 0};

    //  声明的时候没有给定元素的个数 那么初值有几个元素数组就有几个元素

    int array4[] = {1, 4, 6, 7, 9};

    

    //  声明一个字符型数组  i p h o n e

    char str[10] = {'i', 'p', 'h', 'o', 'n', 'e'};

    //  字符串

    char str1[] = "ipone";

    

      取出数组中的元素

      使用 数组名[下标切记下标从0开始

    int array[6] = {27, 19, 22, 26, 23, 18};

    

      需求 : 修改鹏举年龄 19->39(真实年龄)

    array[1] = 39;

        printf("%d",array[1]);

    array[5] = 5;

      需求: 输出数组中的所有元素 叫做遍历

      循环输出

    for (int n = 0; n < 6; n++) {

        printf("%d ",array[n]);

    }

    

    //  1、定义⼀个具有20个元素的整型数组,每个元素的取值范围是30-70之间,求数组元素的和。

    int array1[20] = {0};

    int all = 0;

    //  遍历数组

    for (int n = 0; n < 20; n++) {

       int random = arc4random()%(70 - 30 + 1) + 30;

        array1[n] = random;

        all = all + array1[n];//  相当于sum += array[i]

    }

    printf("%d", all);

    

      2、交换⼀个数组,即两个数组容量⼀样,把其中⼀个数组中的元素交换到另外⼀个数组中。

    int array1[5] = {3, 2, 4, 5, 6};

    int array2[5] = {33, 22, 44, 55, 66};

    int switch1[5] = {0};

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

        switch1[i] = array1[i];

        array1[i] = array2[i];

        array2[i] = switch1[i];

        printf("%d ",array1[i]);

    }

    

    3、⽣成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相加,放到另外⼀个数组中

    int array1[10] = {0};

    int array2[10] = {0};

    int array3[10] = {0};

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

        //  给数组赋值随机数

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

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

        //  利用前两数组的元素赋值第三个数组的元素

        array3[i] = array1[i] + array2[i];

        printf("%d  ",array3[i]);

    }

    

      数组越界问题

      切记系统不会提示你越界 需要你自己注意 千万不要越界

    int array[5] = {1, 3, 5, 7, 9};

    printf("%d",array[5]);

    

      数组在内存当中是连续的一段存储区域

      并且 数组的名字就是数组的元素的首地址(第一个元素的地址)

      注意 : 数组不能直接赋值

      array1 = array2  错误的(数组的名字是元素的首地址,是一个地址,地址是一个常量,是程序执行期间,无法改变的量,所以数组不能直接赋值)

    

      冒泡排序

      比较趟数   5个数(5 - 1)

      每趟比较次数  第一趟比较(5 - 1)  第二趟 比较(5 - 2) ...

      精髓:前后两个数比较大小 前面大于后面的 两个数交换位置 依次继续

    int array[5] = {1, 3, 5, 7, 9};

    //  外层控制比较的趟数

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

        //  内存循环 控制每趟比较的次数

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

            //  比较的过程 2个数比大小 前面大 交换

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

                //  交换 通过中间值交换(第三只手)

                int temp = array[j];

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

                array[j + 1] = temp;

            }

        }

    }

    // 遍历数组

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

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

    }

    

    

      1、随机产⽣10[20,40]数,并对10个数从⼩到⼤排序。

    

    int array[10] = {0};

    //  随机生成十个数

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

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

    }

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

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

            if (array[m + 1] < array[m]) {

                int temp = array[m];

                array[m] = array[m + 1];

                array[m + 1] = temp;

               

            }

           

        }

    }

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

        printf("%d ",array[n]);

    }

    

    

      字符数组的两种表现形式

      字符串比字符数组多了一个 '\0'

      '\0' 是用来结束字符串的

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

    char str2[] = "iphone"//  字符串数组

      打印数据类型或者变量的 所占字节数的函数

      sizeof()

      %lu 无符号的长整型

      unsigned long number1 = sizeof(str1);

    printf("%lu ",sizeof(str1));

    printf("%lu",sizeof(str2));

    

      字符串长度的计算

      strlen(要计算的字符串)

      char str[] = {"I Love Jay"};

      打印有效长度

      从第一个字符开始 如果不是'\0' 长度 + 1,遇到'\0'结束 并且输出的长度不包含'\0'

    printf("%lu ",strlen(str));

    

      char str2[] = {'i', 'p'};//  不能用 strlen来计算长度 只应用字符串

    

    

      字符串的拷贝

      拷贝 :从第一个字符开始拷贝 遇到'/0'拷贝结束

      注意 :目标字符串的长度最好大于源字符串

      char str1[20] ="I LOVE Jay"//  目标字符串

      char str2[] = "I LOVE Echo"//  源字符串

      strcpy(目标字符串, 源字符串);

      strcpy(str1, str2);

      如果不是'\0' 一个字符一个字符输出 如果遇到'\0' 就结束

    printf("%s",str1);

    

      字符串的拼接

      被拼接的字符串长度一定要够接受拼接完的字符串

    char str1[100] = "Edward";

    char str2[] = "Gaming";

    strcat(str1, str2);//  把后面的str2拼接到str1的后面

    printf("%s",str1);

    

      字符串的比较

    char str1[] = "I LOVE YOU";

    char str2[] = "I MISS YOU";

      接收比较的结果

      从第一个字符开始比较 如果一样的话看下一个 如果不一样开始进行比较 比较的内容是该字符在ASCII表中对应的数 前面减去后面的 得到一个返回值 返回值是正数则前面大 反之后面大 然后比较结束 如果返回值是0 那么两个字符串相同

    int number = strcmp(str1, str2);

    printf("%d",number);

    

    /*

     练习查找字符串中的空格数:

     例如:“I love iOS, i want an iPhone5s”

           6个空格

     

     */

    char str1[] = "I love iOS, i want an iPhone5s";

    int b = 0;

      跟数组有关基本需要遍历.

    for (int i = 0; i < strlen(str1);i++) {

        判断这个字符是不是空格

        if (str1[i] == ' ') {

            b ++;

        }

    }printf("%d",b);

转载于:https://www.cnblogs.com/888yf/p/4992746.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值