C語言獲取矩陣的最大值及其下標

2020-07-16 10:04:31
本範例要求使用二維陣列將一個 3×4 的矩陣中所有元素的最大值及其下標獲取,通過該程式,掌握二維陣列的參照知識。

演算法思想

針對本範例,有兩個步驟需要編寫程式完成:第一個步驟是求矩陣元素的最大值,可以通過相鄰的元素大小比較,最終獲取最大值;第二個步驟是針對獲取到的元素最大值,求該元素的下標。

二維陣列元素的一般表示方法為:“陣列名[下標][下標]”。對於二維陣列,下標變數和陣列說明在表示形式上是一樣的,比如在本例中,有語句:int a[3][4]; a[3][4]=2/3;

上述語句中“a[3][4]”是完全不同的兩個概念,第一個語句中的“a[3][4]”用來定義一個陣列,而第二個語句中的“a[3][4]”是一個雙下標變數。

程式程式碼

#include <stdio.h>
int main()
{
    int a[3][4],i,j,max,max_i=0,max_j=0;
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            scanf("%d",&a[i][j]);
    max=a[0][0];
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
            if(a[i][j]>max)
            {
                max=a[i][j];
                max_i=i;
                max_j=j;
            }
            printf("max=a[%d][%d]=%dn",max_i,max_j,max);
            return 0;
}

偵錯執行結果

本實訓的程式主要完成了兩個功能:一是通過一個二次迴圈輸入該二維陣列的所有元素;二是將輸入元素按照相鄰關係進行比較,最終得到最大值和這個最大值的下標。如果輸入陣列是:1 2 3 4 5 6 7 99 9 10 11 12。則最終輸出結果如下所示:

1 2 3 4 5 6 7 99 9 10 11 12
max=a[1][3]=99