C语言二维数组

来源:互联网 发布:安卓博德之门2修改数据 编辑:程序博客网 时间:2024/04/29 08:08


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

   

    //回想一维数组定义方式

    //类型修饰符数组名[元素个数] = {初始值...}

    //int array[5] = {1, 3, 2, 9, 4};

    //创建一个二维数组

    //类型修饰符数组名[包含几个小数组][每个小数组有多少个元素]={初始值}

    //初始值如何写?

//    int array[3][4]={{1, 2, 3, 4},

//                     {5, 6, 7, 8},

//                  {9, 10, 11, 12}};

    //一维数组可以省略元素个数,二维数组只能省略第一位(第一个[3]可以不写)

    //第二种初始值写法

//    int array[3][4]={1, 2, 3, 4,

//                     5, 6, 7, 8, 9,

//                     10, 11, 12};

//    

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

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

//    //第一重循环,遍历小数组

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

//    {

//        //第二重循环,遍历小数组元素

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

//        {

//            //给每个元素赋值,随机范围0~49

//            array[i][j] = arc4random() % 50;

//                   //输出每个元素

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

//        }

//                   //相当于小数组遍历完毕,添加换行符

//                   printf("\n");

//    }

//      // 练习:将一个⼆二维数组的⾏和列交换,存储到另外一个数组中去。

//    printf("改变后");

//    int dest[4][3]={0};

//    for(int i =0;i<4;i++)

//    {

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

//        {

//            dest[i][j]=array[j][i];

//    printf("%2d ",dest[i][j]);

//           }

//         printf("\n");

//    }

//美观美观

   

    //练习:有一个3⾏行4列的⼆二维数组,要求编程找出最⼤大元素,并输出所在的⾏行和列

    //定义一个变量保存最大值,方法1

//    int max =0;

//    //定义两个变量保存位置

//    int row =0,col=0;

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

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

//    {

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

//        {

//            array[i][j] = arc4random() % 50;

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

//            //判断最大值

//            if(max<array[i][j])

//            {

//                max=array[i][j];

//                

//                //并且记录位置信息

//                row=i;

//                col=j;

//            }

//        }

//           printf("\n");

//    }

//        printf("%2d ",array[row][col]);

    

    

        


//  方法2:

    

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

//    int maxRow=0,maxCol=0;

//    int max=0;

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

//    {

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

//        {

//                        array[i][j] = arc4random() % 50;

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

//            if(max<array[i][j])

//                            {

//                                max=array[i][j];

//    

//                            }

//            //用当前位置元素与记录的最大值位置元素进行比较,如果大于,则改变

//            if(array[i][j]>array[maxRow][maxCol])

//            {

//                maxRow = i;

//                maxCol =j;

//            }

//        }

//    }

//     printf("max =%d\n",array[maxRow][maxCol]);

//    printf("%d,%d",maxRow,maxCol);

   

//    //测试元素个数补齐

//    int array[][3]={{1,2},{4,8,9}};

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

//    {

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

//        {

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

//        }

//        printf("\n");

//    }

    

    //定义字符串数组

   // char strings[几个字符串][每个字符串的空间大小]{初始值列表};

//    char  strings[4][50]={"iOS", "Cocos2D-X",

//        "Android","Unity3D"};

//    //string[0]就是第一个数组的首地址

//    //可以理解为恒等于&string[0][0]

//    //循环输出字符串数组

//    for(int i=0;i<4;i++)

//    {

//    

//    printf("%s\n",strings[i]);

//    

//    }

    

     //  char  strings[4][50]={"iOS", "Cocos2D-X",

     //      "Android","Unity3D"};

//    //如果打印一个字符,需要用%c

//   // printf("%c\n",strings[2][2]);

//    printf("%s\n",&strings[1][5]);

    //2.创建⼀一个字符串数组(内容是你周围⼀一圈⼈人的姓名),输出最⻓

    //字符串的⻓长度。

    //定义一个变量用来存储最长的长度

//    char  strings[4][50]={"iOS", "Cocos2D-X",

//        "Android","Unity3D"};

//    int maxLength=0;

//    //遍历字符串数组

//    for(int i =0;i<4;i++)

//    {

//    //进行判断

//        if(strlen(strings[i])>strlen(strings[maxLength]))

//        {

//            maxLength=i;

//           

//       

//        }

//      

//    }

//    printf("最长单词是%s",strings[maxLength]);

    //创建一个字符串数组(内容是你周围⼀一圈⼈人的姓名),对字符串 (英⽂文)从小到大排序

    

       char  strings[4][50]={"iOS","Cocos2D-X",

            "Android","Unity3D"};

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

    {

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

        {//条件判断,strcmp的返回值大于0的时候,是按照降序排列的,要交换位置

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

            {

               //交换字符串

                //字符串不能直接赋值,需要用字符拷贝函数strcpy

               char temp[50]={0};

               strcpy(temp,strings[j]);

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

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

                

            

            }

        

        }

    

    }

   for(int i=0;i<4;i++)

    {

       printf("%s\n",strings[i]);

    }

    

    //明天考

//    char  strings[4][50]={"iOS", "Cocos2D-X",

//        "Android","Unity3D"};

//    for(int i =0;i<4-1;i++)

//    {

//        for(int j=0;j<4-1-i;j++)

//        {

//            if(strcmp(strings[j],strings[j+1])>0)

//            {

//                char temp[50]={0};

//                strcpy(temp,strings[j]);

//                strcpy(strings[j],strings[j+1]);

//                strcpy(strings[j+1],temp);

//                

//            }

//        }

//    }

//    for(int i =0;i<4;i++)

//    {

//        printf("%s\n",strings[i]);

//    }



    

}



0 0
原创粉丝点击