C语言初级阶段4——数组2————二维数组

二维数组的定义:类型说明符 数组名[数组大小] [数组大小]

第一个大小是行的大小,第二个大小是列的大小。

二维数组的初始化:{}

#include<stdio.h>
int main() {
int arr[2][9] = {
{1,2,3,4,5,6,7,8,9},
{9,8,7,6,5,4,3,2,1}
};
int arr1[2][9] = { 1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1 };
//赋值是一行一行的赋值
int arr2[2][9] = { {1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9} };
int arr3[2][9] = { {1,2,3},{4,5,6} };//没有赋值的地方系统自动默认为0
/*int arr4[][4];
int arr5[2][];不能这么定义*/
int arr6[][3] = {
1,2,3,
4,5,6,
7,8,9,
10
};
printf("%d\n", arr6[3][2]);
int arr7[10] = { 1,2,3,4,8,9,8,4,5,8 };
for (int i = 0; i < 10; i++)
{
printf("%d\n", arr7[i]);
}
int arr8[][3] = {
1,2,3,
4,5,9,
8,5,6,
10
};
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++) {
printf("%d\t", arr8[i][j]);
}
printf("\n");//二维数组需要用循环的嵌套进行输出。
}
return 0;
}

三维数组:三维数组是由多个二维数组构成。

#include<stdio.h>
int main()
{
int arr9[2][4][3] = {
{
{1,2,3},
{4,5,6},
{7,8,9},
{10}
},
{
{1,2,3},
{4,5,6},
{7,8,9},
{10}
}
};
printf("%d\n", arr9[1][2][1]);
return 0;
}

四维数组:四维数组由多个三维数组组成的。

#include<stdio.h>
int main()
{
int arr9[2][4][3] = {
{
{1,2,3},
{4,5,6},
{7,8,9},
{10}
},
{
{1,2,3},
{4,5,6},
{7,8,9},
{10}
}
};
printf("%d\n", arr9[1][2][1]); int arr10[2][3][4][5] = {
{
{
{1,2},
{1,2}
},
{
{3,4},
{5,6}
}
},
{
{
{1,2},
{1,2}
},
{
{3,4},
{5,6}
}
}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
for (int k = 0; k < 4; k++)
for (int l = 0; l < 0; l++)
{
printf("%d\n=t", arr10[i][j][k][l]);
}
}
}
return 0;
}
#include<stdio.h>
#include<windows.h>//system("clc")的头文件
#include<conio.h>//switch(_getchar())的头文件
int main() {
//在推箱子中,1表示墙,0表示空地,2表示人,3表示箱子,4表示目的地。
int x = 0, y = 0;//表示人的位置
int arr11[5][5] = {
1,1,1,1,1,
1,0,0,0,1,
1,0,2,4,1,
1,0,0,3,1,
1,1,1,1,1,
};
while (1)
{
system("cls");//清屏,清除控制台里面的内容。
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (arr11[i][j] == 2)
{
x = i;
y = j;
}
}
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%d\t", arr11[i][j]);
}
printf("\n");
}
switch (_getch())//获取一个字符
{
case 's':
if (arr11[x + 1][y] == 0)
{
arr11[x + 1][y] += 2;//把下一步是空的地方+2,变成人。
arr11[x][y] -= 2;//原来人的位置-2,变成空地。
}
break;
}
}
return 0;
}

作业:推箱子游戏,左'A',上'W',下'S',右'D'

最新文章

  1. 编译器开发系列--Ocelot语言5.表达式的有效性检查
  2. 25个最佳的 WordPress Gallery 画廊插件
  3. JavaScript学习笔记-自定义滚动条
  4. pip 安装命令
  5. TCPIP,Http,Socket的区别
  6. HTTPS-使用Fiddler抓取HTTPS数据包原理
  7. bzoj 2229 [Zjoi2011]最小割(分治+最小割)
  8. 一步步学习ASP.NET MVC3 (11)——@Ajax,JavaScriptResult(2)
  9. 学习kernel编程的建议
  10. href 里面 链接前面加/与不加的区别?(绝对路径与相对路径)
  11. 利用css进行网页布局
  12. 解决MSSQL 2008不能用IP登录的问题
  13. Python入门之迭代器/生成器/yield的表达方式/面向过程编程
  14. github常用命令
  15. MVC学习之路(1) EF 增删查改合集
  16. 近年NOIP考点与主要做法
  17. SpringLog4j日志体系实现方式
  18. jdk动态代理在idea的debug模式下不断刷新tostring方法
  19. UVaLive 4628 Jack&#39;s socks (贪心)
  20. 一个本地DNS解析和mysql授权导致的Mysq连接失败问题(Access denied for user &#39;loan&#39;@&#39;kfcsdb1&#39; (using password: YES))

热门文章

  1. qt 运行环境配置
  2. Hibernate的工作流程
  3. 面试官:MySQL一千万数据,怎么快速查询?
  4. kali中MulVAL的安装与配置
  5. Docker内容总结
  6. SQL0818N/SQL0901N error when running db2advis
  7. 空间数据格式(地理数据格式):GeoJSON(FeatureCollection)与EsriJSON(FeatureSet/ArcGIS格式)
  8. 暴雪、迪士尼大佬用什么画画?RayLink远控软件助力解锁远程创作
  9. R语言3D图导出矢量图有bug
  10. ABAP 删除内表重复数据