写一个3*4的数组,求输出最大值和所在行和列

这篇博客介绍了如何编写C语言程序来找出3x4矩阵中的最大元素及其所在的行号和列号。程序分为三个部分:赋值函数用于读取矩阵数据,比较和输出函数用于查找并输出最大值及其坐标,最后在main函数中调用这两个函数。通过遍历矩阵,找到最大值并更新最大值及对应的位置,最后打印结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目内容:
有一个3X4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
这个代码我们分为三部分进行:
1.赋值函数:
这是一个3*4的二维数组,及三行四列的数组,所以我们先要给数组去赋值,此时我们可以写一个赋值函数myscanf去给数组一一赋值
代码如下:
这里用到了两个for循环,i表示的是行,j表示的是列
当i=0时,依次给第一行赋值,i=1时,第二行赋值,i=2时,第三行赋值.

void myscanf(int arr[3][4])
{
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++) 
		{
			scanf("%d", &arr[i][j]);
		}
	}
}

2.比较和输出函数:
在这个函数中,我们要找到数组中的最大值,并且去把最大值max和它所在的行row和列col输出.首先我们先假设最大值max为arr[0][0],然后用两个循环去编列每一行每一列,用遍历到的值和arr[0][0]去比较,若arr[i][j] > max,则去交换两个值,此时最大的值还是为max,此时的行为row,列为col,在循环外面去把max,row,col依次输出.
具体代码如下:

void compare(int arr[3][4])
{
	int i = 0;
	int j = 0;
	int row = 0;
	int col = 0;
	int max = arr[0][0];
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			if (arr[i][j] > max)
			{
				max = arr[i][j];
				row = i;
				col = j;
			}
		}
	}
	printf(" max = %d\n row = %d\n col = %d\n", max, row, col);
}

3.函数写完后去main函数里面去调用就行.
代码如下:

int main()
{
    //先将数组初始化为0.
	int arr[3][4] = {0};
	//调用函数,将数组作为参数传递进去
	myscanf(arr);
	compare(arr);
	system("pause");
	return 0;
}

完整地代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void myscanf(int arr[3][4])
{
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++) 
		{
			scanf("%d", &arr[i][j]);
		}
	}
}
void compare(int arr[3][4])
{
	int i = 0;
	int j = 0;
	int row = 0;
	int col = 0;
	int max = arr[0][0];
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 4; j++)
		{
			if (arr[i][j] > max)
			{
				max = arr[i][j];
				row = i;
				col = j;
			}
		}
	}
	printf(" max = %d\n row = %d\n col = %d\n", max, row, col);
}
int main()
{
	int arr[3][4] = {0};
	myscanf(arr);
	compare(arr);
	system("pause");
	return 0;
}

代码到这里就结束了,大家如果想写别的数组的话,只需要去改我二位数组中的常量就行,即a[3][4]中的3,4.希望这个代码对大家有所帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感冒不能喝咖啡!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值