// 声明一个二维数组
// 二维数组的定义: 数据类型 数组名[第一维长度][第二维长度] = {值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]);
//
// 声明一个4行5列的一个整型二维数组 并且随机赋值[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]的数,再将一个3行6列二维数组的行和列交换 存出到另一个数组中去
// 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]);
//
// }
// }
// 有一个3行4列的二维数组 要求编程找出最大元素 并输出所在的行和列
// 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] ={
//10行10列的数组地图
{'#','#','#','#','#','#','#','#','#','#'},//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;
}