// 声明一个二维数组

    // 二维数组的定义: 数据类型 数组名[第一维长度][第二维长度] = {1, 2,....};

    // 一般第一维  叫行  第二维叫列

    

    

    //  需求: 声明 三行四列的×××二维数组

//    int array[3][4] = {

//    

//        {1, 6, 112, 15},

//        {2, 4, 6, 8},

//        {3, 5, 7, 9}

//    

//    };

    

    // 访问二维数组中的元素

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

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

//    

//    

//    // 二维数组赋值

//    array[1][3] = 33;

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

//    

    // 声明一个45列的一个整型二维数组 并且随机赋值[20, 100]之间的数

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

    // 循环赋值

    // 遍历二维数组

    // 外层循环 控制行数

    // 内层循环 控制列数

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

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

//             array[i][j] = arc4random() % (100 - 20 + 1) +20;

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

//        }

//    }

//

//    // 打印二维数组

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

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

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

//        }

//    }


    

    // 先随机赋值[10,50]的数,再将一个36列二维数组的行和列交换  存出到另一个数组中去

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

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

//        for (int j = 0;j < 6; j++) {

//            array[i][j] = arc4random() % (50 - 10 + 1) + 10;

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

//        }

//    }

//

//    int array1[6][3] = {0};

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

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

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

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

//        }

//    }

//

//    // 遍历数组

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

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

//    

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

//    

//        }

//    }

    

    //  有一个34列的二维数组 要求编程找出最大元素 并输出所在的行和列

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

//    int max = 0;

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

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

//            array[i][j] = arc4random() % (40 - 1 + 1) + 1;

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

//            }

//        printf("\n");

//        }

//    //  定义行

//    int row = 0;

//    int lie = 0;

//    int m = 0;

//    int n = 0;

//    

//    // 定义最小值 注意给初值 最好给一个数组中的数

//    int min = array[0][0];

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

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

//

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

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

//        row = i;

//        lie = j;

//    

//

//}

//        if (min > array[i][j]) {

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

//            m = i;

//            n = j;

//        }

//        

//        

//    }

//}

//    printf("max= %d min = %d",max,min);

//    

//    printf("row= %d, lie = %d, m = %d, n = %d",row,lie,m,n);


    

    

    // 字符串数组

//    char str1[] = {'i', 'p', 'h'};

//    char str2[] ="iph";

//    // 这个字符串数组  保存了3个字符串且每个字符串20个字符

//    // 注意: 声明时 第二维下标 代表每个字符串的长度 切记不要越界

//    char str3[3][20] = {

//        "wanglong",

//        "wuyuchen",

//        "zhuangzhuang"};

//    

//    // 取出字符串数组中 某一个字符串

//    // 用一维下标取出整个字符串 从零开始

//    printf("%s\n",str3[1]);

//    

//    // 取出字符串数组中 单个字符

//    printf("%c",str3[1][2]);

//    

//    // 赋值字符串

//    // 字符串在进行赋值的时候 需要使用字符串拷贝

//    strcpy(str3[0], "nipeng");

//    

//    printf("%s\n",str3[0]);

//    

    // 创建一个字符串数组 (内容是你周围一圈人的姓名),输出最长字符串的长度

//    

//    char str[4][30] ={

//        "wangboao",

//        "zhaoyongquan",

//        "fupengju",

//        "cuizhanjian"};

//    

////    // 强制转换一下类型

////    int lenth = (int)strlen(str);

////    printf("%d",lenth);

//    // 定义一个最大长度

//    int max = 0;

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

//        // 判断哪个字符串长

//        if (max < strlen(str[i])) {

//            max = (int) strlen(str[i]);

//        }

//    }

//    

//    

//    printf("%d ", max);

    

    // // /// /// /// 上面这个题 是说每个字符串整体的大小,下面的这个题 是每个字符串中字符的大小//////////////

    

    // 2、创建个字符串数组(内容是你周围圈的姓名),对字符串(英)从到排序。

    

    

    

//    

//    

//    // 声明一个数组

//        char str[4][30] ={

//                "wangboao",

//               "zhaoyongquan",

//                "fupengju",

//               "cuizhanjian"};

//    // 2 冒泡排序

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

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

//            // 前后比较大小

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

//                // 交换

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

//                // 拷贝字符串

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

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

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

//            }

//        }

//    }

//    

//    // 打印结果

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

//        printf("%s ",str[i]);

//    }

//    

    

    

    

    

    // 声明一个两层三行四列的×××数组

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

//        {

//        

//        

//            {1, 4, 5, 7},

//            {2, 5, 6, 9},

//            {5, 6, 8, 9},

//        

//        

//        

//        },

//        {

//    

//            {12, 15, 23, 69},

//            {32, 254,245, 254},

//            {524, 524, 541, 54},

//        }

//        };

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

    

    // 需求 : 声明一个三维数组 3 5 3 随机赋值, 赋值[50 100]的数

    // 声明一个数组

    // 遍历

    // 随机数组

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

//    // 最外层控制层数

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

//        // 中间控制行数

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

//            // 最内层控制列数

//            for (int k = 0; k < 3; k++) {

//                // 赋值

//       array[i][j][k] = arc4random() % (100 - 50 + 1) + 50;

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

//            }

//            printf("\n");

//        }

//        printf("\n");

//    }

    // 三维数组计算元素个数 下标相乘

    

    

    

    // 定义数组时可以不给第一维的个数

    // 1 初值不够一行时 系统自动补齐一行,0

    // 2 初值刚刚够一行 啥也不补

    // 3 初值超过一行不足2行时 自动补齐 0

//    

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

//    for (int i= 0; <#condition#>; <#increment#>) {

//        <#statements#>

//    }

//    

    char str[10][10] ={

    

    //1010列的数组地图

    {'#','#','#','#','#','#','#','#','#','#'},//0

    {'#','0',' ',' ',' ','#',' ','#',' ',' '},//1

    {'#','#',' ','#','#','#',' ','#',' ','#'},//2

    {'#','#',' ',' ',' ',' ',' ','#',' ','#'},//3

    {'#','#','#',' ','#','#',' ','#',' ','#'},//4

    {'#',' ','#',' ',' ','#',' ','#',' ','#'},//5

    {'#',' ','#',' ',' ','#',' ','#',' ','#'},//6

    {'#',' ','#',' ',' ','#',' ','#',' ','#'},//7

    {'#',' ',' ',' ',' ','#',' ',' ',' ','#'},//8

    {'#','#','#','#','#','#','#','#','#','#'},//9

    //0   1   2   3   4   5   6   7   8   9

    };

    // 遍历 打印地图

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

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

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

        }

        printf("\n");

    }

    // 初始坐标

    int startX = 1;

    int startY = 1;

    // 出口坐标

    int endX = 1;

    int endY = 1;   

    // w s a d

    char inputchar = 0;

    char w = '0'; s = '0'; a = '0'; d = '0';

    printf("请输入W,S,A,D来控制上下左右\n");

    scanf("%c",&inputchar);

    switch (inputchar) {

        case 'w':

           

        case 's':

            

        case 'a':

           

        case 'd':

            

            

            break;

            

        default:

            break;

    }