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

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

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

二维数组的初始化:{}

  1. #include<stdio.h>
  2. int main() {
  3. int arr[2][9] = {
  4. {1,2,3,4,5,6,7,8,9},
  5. {9,8,7,6,5,4,3,2,1}
  6. };
  7. int arr1[2][9] = { 1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1 };
  8. //赋值是一行一行的赋值
  9. int arr2[2][9] = { {1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9} };
  10. int arr3[2][9] = { {1,2,3},{4,5,6} };//没有赋值的地方系统自动默认为0
  11. /*int arr4[][4];
  12. int arr5[2][];不能这么定义*/
  13. int arr6[][3] = {
  14. 1,2,3,
  15. 4,5,6,
  16. 7,8,9,
  17. 10
  18. };
  19. printf("%d\n", arr6[3][2]);
  20. int arr7[10] = { 1,2,3,4,8,9,8,4,5,8 };
  21. for (int i = 0; i < 10; i++)
  22. {
  23. printf("%d\n", arr7[i]);
  24. }
  25. int arr8[][3] = {
  26. 1,2,3,
  27. 4,5,9,
  28. 8,5,6,
  29. 10
  30. };
  31. for (int i = 0; i < 4; i++)
  32. {
  33. for (int j = 0; j < 3; j++) {
  34. printf("%d\t", arr8[i][j]);
  35. }
  36. printf("\n");//二维数组需要用循环的嵌套进行输出。
  37. }
  38. return 0;
  39. }

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

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int arr9[2][4][3] = {
  5. {
  6. {1,2,3},
  7. {4,5,6},
  8. {7,8,9},
  9. {10}
  10. },
  11. {
  12. {1,2,3},
  13. {4,5,6},
  14. {7,8,9},
  15. {10}
  16. }
  17. };
  18. printf("%d\n", arr9[1][2][1]);
  19. return 0;
  20. }

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

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int arr9[2][4][3] = {
  5. {
  6. {1,2,3},
  7. {4,5,6},
  8. {7,8,9},
  9. {10}
  10. },
  11. {
  12. {1,2,3},
  13. {4,5,6},
  14. {7,8,9},
  15. {10}
  16. }
  17. };
  18. printf("%d\n", arr9[1][2][1]);
  19. int arr10[2][3][4][5] = {
  20. {
  21. {
  22. {1,2},
  23. {1,2}
  24. },
  25. {
  26. {3,4},
  27. {5,6}
  28. }
  29. },
  30. {
  31. {
  32. {1,2},
  33. {1,2}
  34. },
  35. {
  36. {3,4},
  37. {5,6}
  38. }
  39. }
  40. };
  41. for (int i = 0; i < 2; i++)
  42. {
  43. for (int j = 0; j < 3; j++)
  44. {
  45. for (int k = 0; k < 4; k++)
  46. for (int l = 0; l < 0; l++)
  47. {
  48. printf("%d\n=t", arr10[i][j][k][l]);
  49. }
  50. }
  51. }
  52. return 0;
  53. }
  1. #include<stdio.h>
  2. #include<windows.h>//system("clc")的头文件
  3. #include<conio.h>//switch(_getchar())的头文件
  4. int main() {
  5. //在推箱子中,1表示墙,0表示空地,2表示人,3表示箱子,4表示目的地。
  6. int x = 0, y = 0;//表示人的位置
  7. int arr11[5][5] = {
  8. 1,1,1,1,1,
  9. 1,0,0,0,1,
  10. 1,0,2,4,1,
  11. 1,0,0,3,1,
  12. 1,1,1,1,1,
  13. };
  14. while (1)
  15. {
  16. system("cls");//清屏,清除控制台里面的内容。
  17. for (int i = 0; i < 5; i++)
  18. {
  19. for (int j = 0; j < 5; j++)
  20. {
  21. if (arr11[i][j] == 2)
  22. {
  23. x = i;
  24. y = j;
  25. }
  26. }
  27. }
  28. for (int i = 0; i < 5; i++)
  29. {
  30. for (int j = 0; j < 5; j++)
  31. {
  32. printf("%d\t", arr11[i][j]);
  33. }
  34. printf("\n");
  35. }
  36. switch (_getch())//获取一个字符
  37. {
  38. case 's':
  39. if (arr11[x + 1][y] == 0)
  40. {
  41. arr11[x + 1][y] += 2;//把下一步是空的地方+2,变成人。
  42. arr11[x][y] -= 2;//原来人的位置-2,变成空地。
  43. }
  44. break;
  45. }
  46. }
  47. return 0;
  48. }

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

C语言初级阶段4——数组2————二维数组的更多相关文章

  1. c#简单实现二维数组和二维数组列表List&lt;&gt;的转置

    刚看到网上一篇文章里用sql实现了行列转置.sql server 2005/2008只用一个pivot函数就可以实现sql server 2000很多行的复杂实现.提到转置,立刻想起还在求学阶段曾经做 ...

  2. java基础5 (一维)数组和二维数组

    本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等))    二维数组(二维数组的遍历.排序.查找.定义. ...

  3. C#的一维数组和二维数组定义方式:

    一维数组: //一维数组定义与初始化 ,, };//第一种方式 , , }; //第二种方式 int[] one3; //第三种方式 one3=,,}; 二维数组: //二维数组定义与初始化 //不规 ...

  4. C# 数组、一维数组、二维数组、多维数组、锯齿数组

    C#  数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...

  5. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  6. Java数组之二维数组

    Java中除了一维数组外,还有二维数组,三维数组等多维数组.本文以介绍二维数组来了解多维数组. 1.二维数组的基础 二维数组的定义:二维数组就是数组的数组,数组里的元素也是数组. 二维数组表示行列二维 ...

  7. JS中:数组和二维数组、MAP、Set和枚举的使用

    1.数组和二维数组:   方法一: var names = ['Michael', 'Bob', 'Tracy']; names[0];// 'Michael' 方法二: var mycars=new ...

  8. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)

    二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...

  9. 第二篇 javascript一维数组和二维数组及方法

    一.数组 什么是数组 程序=数据+算法 数组就是一种很常见的保存批量数据的数据结构 一.定义数组 var arr1=[]; //定义了一个不包含元素的数组 ,,]; //定义了一个包含三个元素的数组 ...

  10. android JNI 一维数组、二维数组的访问与使用

    在JNI中访问JAVA类中的整型.浮点型.字符型的数据比较简单,举一个简单的例子,如下: //得到类名 jclass cls = (*env)->GetObjectClass(env, obj) ...

随机推荐

  1. Beaver解析代码反向生成语法文件

    背景 Beaver是一款LALR的语法生成工具,现在有一个反编译项目的需求,需要将Beaver语法文件编译后的代码反向生成语法文件的需求,不去评论需求多么傻逼,直接干 设计 flowchart 语法文 ...

  2. c++游戏编程(1)开发环境与工具函数

    c++游戏编程(1)开发环境与工具函数 文章目录 c++游戏编程(1)开发环境与工具函数 前言 1.开发工具 2.工具函数 2.1 windows.h 2.1.1 _mkdir() 2.1.2 _rm ...

  3. Anaconda之conda常用命令介绍

    anaconda用法: 查看已经安装的包: pip list 或者 conda list 安装和更新: pip install requests pip install requests --upgr ...

  4. win10事件查看器出现10016错误的解决办法

    该错误一般会重复出现在事件查看器,严重的会导致系统卡死. 以解决下列错误为例,给出步骤: 注意记录用户(划掉的部分)及要添加的权限(本例为"本地激活"权限) 1.运行regedit ...

  5. cv::eigen

    void TestEigen() { cv::Mat m = (cv::Mat_<float>(3, 3) << 1, 2, 3, 2, 5, 6, 3, 6, 7); cv: ...

  6. C#当窗体大小改变时,窗体中的控件大小也随之改变

    第一种:推荐 在窗体中加上如下代码即可实现,但窗体点击放大按钮时却不能改变控件大小. private Size beforeResizeSize = Size.Empty;protectedoverr ...

  7. Webservice或WebAPi Post类型传参,类对象格式转换

    有类: public class ImgInfo { public int fs { get; set; } public string FileName { get; set; } public s ...

  8. MySQL日常工具的安装

    安装PT工具 #安装依赖 yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-Digest-M ...

  9. 哈希表相关题目-python

    栈&队列&哈希表&堆-python  https://blog.csdn.net/qq_19446965/article/details/102982047 1.O(1)时间插 ...

  10. js实现网页自动跳转到手机页面

    网站既包含PC端页面,又包括手机端页面时,打开手机端自动跳转手机页面,js代码如下 <script type="text/javascript"> var mobile ...