import java.util.Random;
class TriangleA {
public static void main(String s[]){
int[][] a=new int[4][4];
int sum=0;
int max=a[0][0];
int min=0;
//int min=a[0][0];
Random rand = new Random();
/*-------------------taking input in array--------------*/
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
a[i][j]= rand.nextInt(50);
}
}
/*-----------------------Logic Section--------------------*/
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
if(((j==i)||(j>i))&&(a[i][j]>max)){
max=a[i][j];
}
if(((j==i)||(j>i))&&(a[i][j]<min)&&min!=0){
min=a[i][j];
}
if(j==i||j>i){
sum = sum +a[i][j];
}
System.out.println("i"+i+"j"+j+"a[i][j]"+a[i][j] +"max"+max+"min"+min+"ab"+ab);
System.out.println();
}
}
System.out.println("=============================================");
/*--------------printing array---------------*/
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
System.out.print(a[i][j] + " ");
}System.out.println();
}
System.out.println("==================================================");
/*-----------------------------Output-----------------------*/
System.out.println("Sum is" + sum);
System.out.println("min is" + min);
System.out.println("max is" + max);
}
}
在这个程序中,max和sum工作正常但是当我用[0] [0]初始化mi时,它会自动取0,如果我插入任何数字,例如。 30或任何数字,然后它的工作原理,你能告诉我为什么会这样吗? 谢谢
答案 0 :(得分:1)
删除
&&min!=0
从条件。并将min初始化为
int min=a[0][0];
答案 1 :(得分:0)
Request denied
将创建一个数组并使用默认值将每个元素初始化,在这种情况下为0。因此,在将随机值分配给数组之前int[][] a=new int[4][4];
将始终使用0初始化min,并且条件int min = a[0][0];
将永远不允许更改min的值。
因此在将随机值分配给数组a之后放置if(((j==i)||(j>i))&&(a[i][j]<min)&&min!=0)
。
希望它会有所帮助。
答案 2 :(得分:-1)
<强> EDITED 强>
您正在初始化min = a [0] [0]在为其赋值之前,您需要在分配之后执行此操作。 像这样:
Random rand = new Random();
/*-------------------taking input in array--------------*/
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length;j++){
a[i][j]= rand.nextInt(50);
}
}
int min = a[0][0];//put it here