我的程序运行不正常,代码如下

时间:2017-03-04 08:04:20

标签: java

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或任何数字,然后它的工作原理,你能告诉我为什么会这样吗? 谢谢

3 个答案:

答案 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