新華區(qū)設(shè)計網(wǎng)站公司短視頻培訓(xùn)要多少學(xué)費(fèi)
一.題目描述
有一個3*4的矩陣,要求求出其中最大值的那個元素的值,以及其所在的行號和列號
比如:給定一個3*4的矩陣如下
輸出結(jié)果:最大值為 12 ,行號為3, 列號為2
二.思路分析
打擂臺算法:先思考一下在打擂臺的時候,如何確定最后的優(yōu)勝者的,先找出任意一個人站在臺上,第二個人上去與之比武,勝利的人留在臺上,再上去第三個人與第二個人比武,勝者留在臺上,敗者下臺,以后每一個人都與當(dāng)時留在臺上的人比武,知道所有人都上臺比過為止,最后留下的就是冠軍。
本題也是用“打擂臺算法”,先讓arr[0][0]成為擂主,把它的值賦給遍量max,max用來存放當(dāng)前已知的最大值,然后讓下一個元素arr[0][1]與max比較,如果arr[0][1]>max,則表示arr[0][1]是已經(jīng)比過的數(shù)據(jù)中最大的。把它的值再賦給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];//暫且先認(rèn)為第一個值是最大值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;
}