黑马程序员技术交流社区
标题:
二维数组找最大元素值
[打印本页]
作者:
青少年
时间:
2015-5-17 18:22
标题:
二维数组找最大元素值
//二维数组找最大元素值为甚么没有报错而 if (array[x][y]>mini)中的大小与号换了之后最后值都不变?
public class package com.itheima;
//定义一个二维int数组,编写代码获取最大元素
public class MaxDemo {
public static void main(String[] args){
int[][] array = { { 5, 30, 9, 23 }, { 12, 21 }};
// 定义基准元素
int max = array[0][0];
// 将之与其他元素依次遍历比较
for (int x = 0; x < array.length; x++) {
for (int y = 0; y < array[x].length; y++) {
if (array[x][y]<max) ;{
max= array[x][y];
}
}
}
System.out.println("array[][]数组中最大的元素为"+ max);
}
}
作者:
fhy1969038887
时间:
2015-5-17 18:22
本帖最后由 fhy1969038887 于 2015-5-17 19:02 编辑
同学有一处错误if语句后面多了个分号。
还有一个可能是理解错误,首先定义了max,里面存储的是最大值,而你的if语句里面写的是如果这个值比当前最大值(max)小就把这个值赋给max,这样写出来是得到最小值的,由于之前在if语句后面加了个分号,所以导致if语句并没有控制max=array[x][y],所以结果是二维数组中最后一个数
public class package com.itheima;
//定义一个二维int数组,编写代码获取最大元素
public class MaxDemo {
public static void main(String[] args){
int[][] array = { { 5, 30, 9, 23 }, { 12, 21 }};
// 定义基准元素
int max = array[0][0];
// 将之与其他元素依次遍历比较
for (int x = 0; x < array.length; x++) {
for (int y = 0; y < array[x].length; y++) {
if (array[x][y]>max) {
max= array[x][y];
}
}
}
System.out.println("array[][]数组中最大的元素为"+ max);
}
复制代码
作者:
开弓没有回头箭
时间:
2015-5-17 18:51
在语句if (array[x][y]<max) 后多写了个分号,if判断没有对赋值起作用,赋值在每次循环都会执行,所以最后结果是21
作者:
青少年
时间:
2015-5-17 18:55
太马虎了。谢谢
作者:
飘过的云
时间:
2015-5-17 20:40
可以拿来当第一阶段的测试题了
public static void main(String [] args)
{
int num=100;
if(num ++>100);
{
num =200;
}
System.out.println(num);
}
作者:
L番茄X
时间:
2015-5-17 21:42
class Max{
public static void main(String[]args){
int[] [] arr = {{132,34,54,56},{23,43,54,54},{23,43,545,3}};
//假如第一个数是最大的.
int max = arr[0][0];
//遍历;
for(int i = 0 ; i<arr.length;i++){
for(int j = 0 j<arr.length;j++){
//判断;
if(arr[i][j]>max){
max = arr[i][j];
}
System.out.println(max);
}
}
}
应该就是这样了.谢谢.
作者:
CoeusLYJ
时间:
2015-5-18 09:45
一楼正解
作者:
wwl0517
时间:
2015-5-19 11:21
if语句后多加了个分号
作者:
小麻
时间:
2015-5-19 11:46
刚看到面向对象 只能发现if后面多了分号
作者:
公子小白
时间:
2015-5-19 13:10
<p>//①if 条件语句后多了个分号,②if(array[x][y]>max)才是取最大值的,如果找到的元素比标记的max大,将这个元素的值赋给max。
//代码修改如下(已运行验证过):</p><p>
</p><p>//二维数组找最大元素值为甚么没有报错而 if (array[x][y]>mini)中的大小与号换了之后最后值都不变?
package com.itheima;
//定义一个二维int数组,编写代码获取最大元素
public class MaxDemo {
public static void main(String[] args) {
int[][] array = { { 5, 30, 9, 23 }, { 12, 21 } };
// 定义基准元素
int max = array[0][0];
// 将之与其他元素依次遍历比较
for (int x = 0; x < array.length; x++) {
for (int y = 0; y < array[x].length; y++) {
if (array[x][y] > max) {
max = array[x][y];
}
}
}
System.out.println("array[][]数组中最大的元素为" + max);
}
}</p>
复制代码
作者:
和鹏
时间:
2015-5-19 19:08
if();
{
some statements……
}
some statements根本都没有和if关联。它就没有属于if代码块。
作者:
和鹏
时间:
2015-5-19 19:09
悬赏的黑马币呢?
作者:
守株人
时间:
2015-5-20 22:17
嗯嗯,一楼正解
作者:
金小兵
时间:
2015-6-7 20:41
找最值问题其实很简单,只是用到了简单的查找方法,如果是初学者,为了以后的方便可以看一些计算机专业的数,数据结构,算法设计等,这在以后的编程中会给你带来很大的好处,会给你提供很多解决问题的思路。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2