当前位置 博文首页 > Dp_Json's Blog:练习3—元素最大值

    Dp_Json's Blog:练习3—元素最大值

    作者:[db:作者] 时间:2021-08-19 22:01

    题目

    有一个3*4矩阵,数据为{1, 2, 3, 4}, {9, 8, 7, 6}, {-10, 10, -5, 2},编写程序,通过比较输出最大元素的值及其所在的行标和列标。

    解题步骤

    (1)理解 3 * 4 矩阵;
    (2)循环求最大值;
    (3)保存行列标;
    (4)输出;

    Java

    public class Demo {
        public static void main(String[] args) {
            int[][] array = {{1, 2, 3, 4}, {9, 8, 7, 6}, {-10, 10, -5, 2}};
            int i, j, Max = array[0][0], x = 0, y = 0;
            for (i = 0; i < 3; i++) {
                for (j = 0; j < 4; j++) {
                    if (array[i][j] > Max) {
                        Max = array[i][j];
                        x = i;
                        y = j;
                    }
                }
            }
            System.out.println("Max=" + Max);
            System.out.println("array index:" + "[" + x + "]" + "[" + y + "]");
        }
    }
    

    说明:

    注意区分Java语言中三种数组初始化的方式:

    array=new type[][]{1,2,3,,值 n};
    
    array=new type[][]{new 构造方法(参数列表),};
    
    type[][]array={{1行第1列的值,1行第2列的值,},{2行第1列的值,2行第2列的值,},};
    

    C语言

    #include <stdio.h>
    
    int main(){
        int array[][4]={1,2,3,4,9,8,7,6,-10,10,-5,2},i,j,Max=array[0][0],x,y;
        for(i=0;i<3;i++){
            for(j=0;j<4;j++){
                if(array[i][j]>Max){
                    Max=array[i][j];
                    x=i;
                    y=j;
                }    
            }
        }            
        printf("Max=%d\n",Max);
        printf("array index:[%d][%d]",x,y);
        return 0;
    }
    

    说明:

    重在如何保存下标,循环的确是每个数据都进行比较,但是,若队列后面的数据不满足array[i][j]>Max条件的话,也不会保存它们的下标。所以,直接在循环中增加赋值,以起到保留最大值下标的效果。

    cs
    下一篇:没有了