/* * 找出4×5矩阵中最大元素和最小元素,并输出其值所在的行号和列号 */package com.imooc;import java.util.Scanner;public class z2 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int M,N,m,n; int[][] a=new int[4][5]; int max,min;min=max=a[0][0]; for(int i=0;i<a.length;i++) { for(int j=0;j<a[1].length;j++){System.out.println("请输入数组值"); a[i][j]=in.nextInt(); if(max<a[i][j]) {max=a[i][j];m=i+1; n=j+1;} if(min>a[i][j]){min=a[i][j];M=i+1;N=j+1;} } } System.out.println("max= "+max); System.out.println("行号: "+m+"列好:\t"+n); System.out.println("min= "+min); System.out.println("行号:\t"+M+"列号:\t"+N);}}为什么定义m,n,M,N的时候不负值就无法运行还有就是赋值后运行后为什么这个程序只能输出max以及m,n而min,M,N的值都为0
1 回答
qq_连环_04358155
TA贡献34条经验 获得超5个赞
第一个,你是在if(max<a[i][j])的情况下给m、n赋值的,但是在程序编译时,会认为可能不会有max<a[i][j] 的情况,那么m、n就可能不会有值,而未赋值的参数是不饿能够被打印的,所以建议m、n应该对应一开始的max=a[0][0],另其为0,对于min与M、N也是同理
第二,你的min一开始赋值为a[0][0],数组a未被初始化时是默认为0的,应该是你后面输入的值都是大于0的,所以min、M、N都是0
添加回答
举报
0/150
提交
取消