为了账号安全,请及时绑定邮箱和手机立即绑定

数组最大值和最小值就所在行列

数组最大值和最小值就所在行列

落日离桥 2015-04-15 18:55:38
/* * 找出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

查看完整回答
反对 回复 2016-11-21
  • 1 回答
  • 0 关注
  • 1704 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信