/*?* 找出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_連環(huán)_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
提交
取消