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'

posted on 2022-11-06 08:59  George-Juddson  阅读(72)  评论(0编辑  收藏  举报