赞
踩
有一个3*4的矩阵,要求求出其中最大值的那个元素的值,以及其所在的行号和列号
比如:给定一个3*4的矩阵如下
输出结果:最大值为 12 ,行号为3, 列号为2
打擂台算法:先思考一下在打擂台的时候,如何确定最后的优胜者的,先找出任意一个人站在台上,第二个人上去与之比武,胜利的人留在台上,再上去第三个人与第二个人比武,胜者留在台上,败者下台,以后每一个人都与当时留在台上的人比武,知道所有人都上台比过为止,最后留下的就是冠军。
本题也是用“打擂台算法”,先让arr[0][0]成为擂主,把它的值赋给遍量max,max用来存放当前已知的最大值,然后让下一个元素arr[0][1]与max比较,如果arr[0][1]>max,则表示arr[0][1]是已经比过的数据中最大的。把它的值再赋给max,以后依次处理,值最大的赋值给max,直到全部比完后,max就是最大的值。
- #include<stdio.h>
- 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;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。