IOS成长中 C语言之数组一

知识点概括:

                1.一维数组

                2.冒泡排序

                3.字符数组

 //如何定义变量。
    //分三步:1.数据类型 2.变量名 3. 初值
//    int a = 0;
    //定义一维的整形数组。
    //1.数据类型(指定数组中元素的类型) 2.数组名 3.[5]中括号填写元素个数(要求数组创建的容器的个数) 4.初值,因为数组中存放多个变量,赋初值时使用大括号,内部为每一个变量赋初值,中间用逗号分隔.
//    int b[5] = {1, 2, 3, 4, 5};
    //定义数组时,数组元素的个数只能是常量或者常量表达式,不能为变量.
//    float c[10] = {1};
    //获取数组中的元素,数组名+下标.
    //数组中元素的下标范围, 0 到数组元素个数 - 1.
    //数组所占内存空间的大小 = 数组中每个元素所占空间的大小 * 数组元素的个数.
//    printf("%d\n", b[2]);
//    printf("%d %d\n", b[0], b[4]);
//    b[2] = 10;
//    printf("%d \n", b[2]);
//    b[5] = 10;
    //Arra index 5 is past the
    //打印数组b中的每一个元素.
//    int b[6] = {1, 2, 3, 4, 5, 6};
//    for (int i = 0; i < 600; i++) {
//        printf("%d ", b[i]);
//    }
    //求数组b中的最大值
//    int max = 0; //存储数组的中最大值.
//    for (int i = 0; i < 6; i++) {
//        if (b[i] > max) {
//            max = b[i];
//        }
//    }
//    printf("max = %d \n", max);
//    int min = b[0]; //存储数组中的最小值.
//    for (int i = 1; i < 6; i++) {
//        if (b[i] < min) {
//            min = b[i];
//        }
//    }
//    printf("min = %d ", min);
    //给数组中的元素赋值[10,20]范围内的值.
//    int b[10] = {0};
//    for (int i = 0; i < 10; i++) {
//        b[i] = arc4random() % 11 + 10;
//        printf("%d ", b[i]);
//    }
//    printf("\n");
//    int max = 0;
//    for (int i = 0; i < 10; i++) {
//        max = b[i] > max ? b[i] : max;
//    }
//    printf("max = %d\n", max);
//    int min = b[0];
//    for (int i = 1; i < 10; i++) {
//        min = b[i] < min ? b[i] : min;
//    }
//    printf("min = %d\n", min);
    
//    int a[20] = {0}, sum = 0;
//    for (int i = 0; i < 20; i++) {
//        a[i] = arc4random() % 41 + 30;
//        printf("%d ", a[i]);
//        sum += a[i];
//    }
//    printf("\n");
//    printf("sum = %d \n", sum);
    
//    int a[20] = {0}, b[20] = {0}, temp = 0;
//    for (int i = 0; i < 20; i++) {
//        a[i] = arc4random() % 41 + 30;
//        b[i] = arc4random() % 41 + 30;
//        printf("%d %d~", a[i], b[i]);
//    }
//    printf("\n");
//    for (int i = 0; i < 20; i++) {
//        temp = a[i];
//        a[i] = b[i];
//        b[i] = temp;
//        printf("%d %d~", a[i], b[i]);
//    }
//    printf("\n");
    
//    int a[10] = {0}, b[10] = {0}, c[10] = {0};
//    for (int i = 0; i < 10; i++) {
//        a[i] = arc4random() % 21 + 20;  //给a数组中的元素赋值
//        b[i] = arc4random() % 21 + 20;  //给b数组中的元素赋值
//        c[i] = a[i] + b[i];             //a数组+b数组的值赋给c数  对应下标元素求和,将结果存放到对应的另外一个数组中
//    }
//    printf("a数组:\n");   //输出a数组
//    for (int i = 0; i < 10; i++) {
//        printf(" %d ", a[i]);
//    }
//    printf("\n");
//    printf("b数组:\n");   //输出b数组
//    for (int i = 0; i < 10; i++) {
//        printf(" %d ", b[i]);
//    }
//    printf("\n");
//    printf("c数组:\n");   //数组c数组
//    for (int i = 0; i < 10; i++) {
//        printf(" %d ", c[i]);
//    }
//    printf("\n");
    
    //冒泡排序
//    int a[5] = {15, 18, 30, 27, 7};
    //第一趟排序,比较4次.
    for (int i = 0; i < 4; i++) {
        if (a[i] > a[i + 1]) {
            //交换两个元素的值
            int temp = a[i];
            a[i] = a[i + 1];
            b[i + 1] = temp;
        }
    }
    //第二趟排序,比较3次.
    for (int i = 0; i < 3; i++) {
        if (a[i] > a[i + 1]) {
            int temp = a[i];
            a[i] = a[i + 1];
            a[i + 1] = temp;
        }
    }
    //第三趟排序,比较2次
    for (int i = 0; i < 2; i++) {
        if (a[i] > a[i + 1]) {
            int temp = a[i];
            a[i] = a[i + 1];
            a[i + 1] = temp;
        }
    }
    //第四趟排序,比较1次
    for (int i = 0; i < 1; i++) {
        if (a[i] > a[i + 1]) {
            int temp = a[i];
            a[i] = a[i + 1];
            a[i + 1] =temp;
        }
    }
//    
//    //冒泡排序采用双层for循环
//    //外层循环决定比较的趟数
//    //最外层 -1 可以不减,-1的目的提高程序的执行效率
//    for (int i = 0; i < 5 - 1; i++) {
//        //内层循环决定每一趟比较的次数
//        //内层-1必须要减,减1的目的是为了防止比较的时候超出数组的范围
//        //内层-i可以不减,作用是缩小无序区的范围,提高程序的执行效率
//        for (int j = 0; j < 5 - 1 - i; j++) {
//            if (a[j] > a[j + 1]) {
//                //交换两个元素的值
//                int temp = a[j];
//                a[j] = a[j + 1];
//                a[j + 1] = temp;
//            }
//        }
//    }
//    for (int i = 0; i < 5; i++) {
//        printf(" %d ", a[i]);
//    }
//    printf("\n");
    
    //练习2
//    int a[10] = {0};
//    //给a数组赋值[20,40]随机数
//    for (int i = 0; i < 10; i++) {
//        a[i] = arc4random() % 21 + 20;
//    }
//    //输出a数组
//    printf("a数组:\n");
//    for (int i = 0; i < 10; i++) {
//        printf(" %d ", a[i]);
//    }
//    printf("\n");
//    //a数组从小到大排序
//    for (int i = 0; i < 10 - 1; i++) {
//        for (int j = 0; j < 10 - 1 -i; j++) {
//            if (a[j] > a[j + 1]) {
//                int temp = a[j];
//                a[j] = a[j + 1];
//                a[j + 1] = temp;
//            }
//        }
//    }
//    //输出排序后的a数组
//    printf("从小到大a数组:\n");
//    for (int i = 0; i < 10; i++) {
//        printf(" %d ", a[i]);
//    }
//    printf("\n");
    
    //字符数组
    //字符数组和整形数组一样,都是一维数组,只不过数据类型是char.
//    char str[10] = {'i', 'P', 'h', 'o', 'n', 'e'};
//    printf("%c\n", str[5]);
//    char str[] = "iPhone";
    //sizeof() 用来计算数据类型,变量以及数组所占空间的大小.
//    printf("所占空间大小:%lu\n", sizeof(str));
    //strlen 计算字符串的长度,肉眼看到的字符串中字符的个数.
//    printf("长度:%lu\n", strlen(str));
    //strcpy 字符串拷贝
//    strcpy(str, "la");
    //输出字符串的内容
//    printf("%s \n", str);
//    printf("%c ", str[6]);
    //strcat 字符串拼接
//    strcat(str, "iOS");
//    printf("%s ", str);
    //strcmp 字符串比较
//    char str1[] = "bbc";
//    char str2[] = "bbcd";
//    int result = strcmp(str1, str2);
//    printf("%d",result);























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值