c语言二维数组和多维数组笔记

一维数组:

        int arr[10]={1,2,3,4,5,6,7,8};

二维数组:

定义语法:

int arr[2][3]=

        {2,5,8},{7,9,10};

int arr[3][5]={2,3,5,6,7},{2,6,7,8,9,1},{6,2,5,4,1,8}

打印:

        for (i=0;i<3;i++)         //行

  {

for (j=0;j<5;j++)

        {

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

        }

        printf("\n");

  }

int arr[4][3] = { {5,8,3},
				  {7,3,6},
				  {22,26,29},
				  {55,66,77},
							};
	for (size_t i = 0; i < 4; i++) //行
	{
		for (size_t j = 0; j < 3; j++)	//列
		{
			printf("%d ",arr[i][j]);
		}
		printf("\n");
	}

两次循环分别打印行,且列打印一周再打第二行

二维数组大小:

                  数组大小:sizeof(arr);

                  一行大小:sizeof(arr)/sizeof(arr[0]);

                  一个元素大小:sizeof(arr[0][0]);

                  行数(总大小/一行的大小):sizeof(arr/sizeof(arr[0]));

                  列数:(一行的大小/一个的大小):sizeof(arr)/sizeof(arr[0])/sizeof(arr[0][0]);

地址合一:

        printf("%p\n",arr); = =printf("%p\n",&arr[0][0]);

二维数组的初始化:

        1.常规初始化:

                int arr[3][5]={{2,6,5,7,4},{5,3,2,5,4}.{6,12,4,8,42}}

        2.不完全初始化:

                int arr[3][5]={{2,3},{5,2,3,6}{1,2,4,3}};//未被初始化的数值为0

                int arr[10]={0};   //初始化一个 初值全为0的二维数组

                int arr[3][5] = {2,3,4,5,6,77,85,65,4,45,2}; //系统分配行列

        3.     int arr[ ][ ] = {1,3,5,2,4};   //二维数组定义必须指定列值。        

                int arr[ ][2]={1,3,2,5,4,14};   //可以不指定行值

练习:求出5名学生三门功课的总成绩。一个学生

	int scores[5][3];
	int row = sizeof(scores) / sizeof(scores[0]);	
	int col = sizeof(scores[0]) / sizeof(scores[0][0]);
	//获取5名学生的三门成绩
	for (size_t i = 0; i < row; i++)
	{
		for (size_t j = 0; j < col; j++)
		{
			scanf_s("%d ",&scores[i][j]);
		}
	}
		//求一个学生的总成绩
	for (size_t i = 0; i < row; i++)	//每个学生
	{
		int sum = 0;
		for (size_t j = 0; j < col; j++) //每个学生的成绩
		{
			sum = scores[i][j];
		}
		printf("第%d个学生的总成绩为:%d\n",i+1,sum);
	}
	//
	for (size_t i = 0; i < row; i++)	//每个学生
	{
		int sum = 0;
		for (size_t j = 0; j < col; j++) //每门功课的第几个学生
		{
			sum += scores[i][j];
		}
		printf("第%d门功课的总成绩为:%d\n", i + 1, sum);
	}

多维数组:

        三维数组:【层】【行】【列】

        数组类型 数组名 【层】【行】【列】

   int arr[2][2][4];

     {   {71,42,36,47,95}        

         {11,22,33,44,55}   },

      {  {15,24,36,64,45}

         {21,62,43,44,56}   },
//注意第一个元素为0开始

//待证

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值