class compare
{
public static void main(String args[])
{
int a[]=new int[5];
int max=a[0], min=a[0];
for(int i=0;i<5;i++)
{
a[i]=(int)(Math.random()*100+1);
}
for(int i=0;i<5;i++)
{
System.out.println(+a[i]);
}
for(int i=0;i<5;i++)
{
if(max<a[i])
{
max=a[i];
  }
if(min>a[i])
{
min=a[i];
  }
}

System.out.println("max="+max);
System.out.println("min="+min);
}
}
我都看不出来错在哪里??为什么没法输出最小值??

解决方案 »

  1.   

      public static void main(String[] args) {
    int a[]=new int[5]; 
    int max=a[0], min=a[0]; 
    for(int i=0;i <5;i++) { 
    a[i]=(int)(Math.random()*100+1); 

    max = a[0]; // 加这两行就行了 
    min = a[0]; 
    for(int i=0;i <5;i++) { 
    System.out.println(+a[i]); 

    for(int i=0;i <5;i++) { 
    if(max <a[i]) { 
    max=a[i]; 

    if(min>a[i]) { 
    min=a[i]; 

    System.out.println (min + " " + max);


    System.out.println("max="+max); 
    System.out.println("min="+min);  }
      

  2.   

    你也不看看你的初始化?换一下就好了
    class compare 

    public static void main(String args[]) 

    int a[]=new int[5]; 
    //int max=a[0], min=a[0]; 
    for(int i=0;i <5;i++) 

    a[i]=(int)(Math.random()*100+1); 
    }
    int max=a[0], min=a[0]; for(int i=0;i <5;i++) 

    System.out.println(+a[i]); 

    for(int i=0;i <5;i++) 

    if(max <a[i]) 

    max=a[i]; 
      } 
    if(min>a[i]) 

    min=a[i]; 
      } 
    } System.out.println("max="+max); 
    System.out.println("min="+min); 

    } 注意看红色的字
      

  3.   

    public class test { 
    public static void main(String args[]){ 
    int a[]=new int[5]; 
    int max=a[0], min=a[0];  //在这里a[0]=0;所以max=min=a[0]=0了
    for(int i=0;i <5;i++){ 
    a[i]=(int)(Math.random()*100+1); 

    for(int i=0;i <5;i++){ 
    System.out.println(+a[i]); 

    for(int i=0;i <5;i++){ 
    if(max <a[i]){ 
    max=a[i]; 

    if(min>a[i]){ //这句if是永远不会执行的,因为min=0,而a[i]>=0,min是不可以大于a[i]的,所以到最后min还是等于0
    min=a[i]; 


    }
    }
      

  4.   

    int a[]=new int[5]; 
    int max=a[0], min=a[0]; 如果直接在这里赋值,max和min都是a[0],而a[0]是自动被赋值为0的如果是
    int a[]=new int[5]; 
    for(int i=0;i <5;i++) 

    a[i]=(int)(Math.random()*100+1); 

    int max=a[0], min=a[0]; for(int i=0;i <5;i++) 
    这样,那是不是等a[0]被赋值一个随机数后才赋给min和max的??兄弟,你有没有学的啊??