2021.11.5 二维数组定义以及矩阵转换、求最大值

69 篇文章 3 订阅

1. 二维数组

二维数组定义:
类型 数组名[行号][列号];

二维数组初始化:
二维数组默认:行优先    
int arr[][4];ok     因为默认行优先,所以行号可以省略,而列号不能省
int arr[3][];//error

二维数组的使用:
二维数组名做函数参数传递的时候, 行信息会丢失,列信息不会丢失、

2. 二维数组正确写法:行号可以不写,列号必须写

    int brr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	int crr[3][4] = {{1,2,3,4},{5,6},{9,10}};
	int drr[3][4] = {{1,2}, {3,4,5,6}, {7,8}};
	int err[3][4] = {{0,0,1,2}, {3,4}, {0,0,5,6}};
    int frr[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	int grr[][4] = {1,2,3,4,5,6,7,8,9,10};
	int hrr[3][4] = {};
	

3. 将一个3行4列的矩阵转化成一个4行3列的矩阵

	#include<stdio.h>
    int main()
    {
    int arr[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	int brr[4][3] = {};

	for(int i=0; i<3; i++)
	{
		for(int j=0; j<4; j++)
		{
			brr[j][i] = arr[i][j];
		}
	}

	for(int i=0; i<4; i++)
	{
		for(int j=0; j<3; j++)
		{
			printf("%d ", brr[i][j]);
		}
		printf("\n");
	}
}

运行结果:

 

4. 给出一个3行4列矩阵,求出矩阵中的最大值以及所在位置。

方法一、直接写在主函数中
#include<stdio.h>
int main()
{
	int arr[3][4] = {12,23,34,45,56,67,78,89,11,10,1,118};

	int max = 0;
	int max_i = 0;
	int max_j = 0;

	for(int i=0; i<3; i++)
	{
		for(int j=0; j<4; j++)
		{
			if(arr[i][j] > max)
			{
				max = arr[i][j];
				max_i = i;
				max_j = j;
			}
		}
	}

	printf("%d %d %d\n", arr[max_i][max_j], max_i, max_j);
	return 0;
}

运行结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值