C语言--有一个3*4的矩阵,求出其中最大值的那个元素的值,以及其所在的行号和列号


一.题目描述

有一个3*4的矩阵,要求求出其中最大值的那个元素的值,以及其所在的行号和列号

比如:给定一个3*4的矩阵如下

C语言--有一个3*4的矩阵,求出其中最大值的那个元素的值,以及其所在的行号和列号_第1张图片

输出结果:最大值为 12 ,行号为3, 列号为2


二.思路分析

打擂台算法:
先思考一下在打擂台的时候,如何确定最后的优胜者的,先找出任意一个人站在台上,第二个人上去与之比武,胜利的人留在台上,再上去第三个人与第二个人比武,胜者留在台上,败者下台,以后每一个人都与当时留在台上的人比武,知道所有人都上台比过为止,最后留下的就是冠军。
本题也是用“打擂台算法”,先让arr[0][0]成为擂主,把它的值赋给遍量max,max用来存放当前已知的最大值,然后让下一个元素arr[0][1]与max比较,如果arr[0][1]>max,则表示arr[0][1]是已经比过的数据中最大的。把它的值再赋给max,以后依次处理,值最大的赋值给max,直到全部比完后,max就是最大的值。

三.完整代码

#include
int main()
{
	int arr[3][4] = {0,2,213,123,3,1,5,4,33,23,21,44};
	int max = arr[0][0];//暂且先认为第一个值是最大值
	int row = 0;//行号
	int col = 0;//列号
	int i, j = 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("最大值是%d\n行号是%d\n列号是%d", max, row, col);
	return 0;
}

四.运行结果

C语言--有一个3*4的矩阵,求出其中最大值的那个元素的值,以及其所在的行号和列号_第2张图片

你可能感兴趣的:(C语言学习,c语言)