C语言-6

本文探讨了如何使用C语言实现随机数组的生成、交换、遍历和排序,包括数组的初始化、元素交换、查找最大值及其位置、字符串排序及长度排序等基本操作。通过实例演示了不同类型的排序算法应用,旨在提升对数据结构和算法的理解。
摘要由CSDN通过智能技术生成
    /*

    char arr[2][3] = {0};

    char arr2[3][2] = {0};

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

        for (int j = 0; j < 3; j++) {

            arr[i][j] = arc4random() % (122 - 97 +1) +97;

            printf("%c ", arr[i][j]);

        }

        printf("\n");

    }

//    数组arr交换行列放入arr2

    printf("\n");

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

        for (int j = 0; j < 3; j++) {

            arr2[j][i] = arr[i][j];

        }

    }

//    打印数组arr2

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

        for (int j = 0; j < 2; j++) {

            printf("%c ", arr2[i][j]);

        }

        printf("\n");

    }

    */

    

    /*

//    随机产生数放入数组arr1中 并找出最大值

    int arr1[3][4] = {0},max = 0;

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

        for (int j = 0; j < 4; j++) {

            arr1[i][j] = arc4random() % 10;

            printf("%d ", arr1[i][j]);

            if (max < arr1[i][j]) {

                max = arr1[i][j];

            }

        }

        printf("\n");

    }

//    遍历数组找出和最大值的位置

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

        for (int j = 0; j < 4; j++) {

            if (max == arr1[i][j]) {

                printf("最大值是:%d 位于第%d行 第%d列   ", max,i,j);

                printf("\n");

            }

        }

    }

     */

    

    

    

    /*

          int arr1[3][4] = {0},max = 0;

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

                for (int j = 0; j < 4; j++) {

                   arr1[i][j] = arc4random() % 10;

                   printf("%d ", arr1[i][j]);

                }

                printf("\n");

            }

        printf("\n");

    */

    //    定义一个三行四列的数组,然后随机赋值(10-80)最后求出每行的最大值 进行打印

    /*

     int arr1[3][4] = {0};

     //    int arr[3] = {0};

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

         int max = 0;

         //    随机产生数放入数组arr1中并找出最大值max

         for (int j = 0; j < 4; j++) {

            arr1[i][j] = arc4random() % 10;

            printf("%d ", arr1[i][j]);

             if (max < arr1[i][j]) {

                 max = arr1[i][j];

             }

         }

     //        arr[i] = max;

//         在每行中找出与最大值相等的数的位置

     printf("第 %d行的最大值是: %d  ", i,max);

     for (int j = 0; j < 4; j++) {

         if (arr1[i][j] == max) {

             printf("位置有:第 %d 行第 %d 列  ", i ,j);

            }

        }

         printf("\n");

    }

     */

    

    /*

        char a[3][10]={"today","is","Monday"};

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

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

               printf("%c  ",a[i][j]);

           }

            printf("%s  ",a[i]);

            printf("\n");

        }

    */

    

//    字符串排序

    /*

    char strarr[6][15]= {"miaoshuang", "zhngjie", "dongyongfei", "shangyongxiang", "liukdai", "xiewenya"};

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

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

            //判断字符串大小

            if (strcmp(strarr[j], strarr[j+1]) > 0) {

                //交换借助 strcpy

                char temp[20] = {0};

                strcpy(temp, strarr[j]);

                strcpy(strarr[j], strarr[j + 1]);

                strcpy(strarr[j + 1], temp);

                

            }

        }

    }

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

        printf("%s ",strarr[i]);

    }

     */

//    字符串长度排序

    /*

    char strarr[6][15]= {"miaoshuang", "zhngjie", "dongyongfei", "shangyongxiang", "liukdai", "xiewenya"};

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

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

            //判断字符串长度大小

            if (strlen(strarr[j]) > strlen(strarr[j+1])) {

                //交换借助 strcpy

                char temp[20] = {0};

                strcpy(temp, strarr[j]);

                strcpy(strarr[j], strarr[j + 1]);

                strcpy(strarr[j + 1], temp);

                

            }

        }

    }

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

        printf("%s ",strarr[i]);

    }

    */

//    3维数组

    /*

    int array[2][3][4] = {0};

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

        for (int j = 0; j < 3; j++) {

            for (int k = 0; k < 4; k++) {

                array[i][j][k] = arc4random() % 101;

            }

        }

    }

    //    输出数组中的每个元素

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

        for (int j = 0; j < 3; j++) {

            for (int k = 0; k < 4; k++) {

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

            }

        }

    }

    */

    

    //    计算数组元素个数

    /*

    int array[58] = {3,6,5,3};

    printf("%lu\n",sizeof(array)/sizeof(int));

    printf("%lu\n",sizeof(array)/sizeof(array[0]));

    */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值