看来,这道题还得请了解JAVA语法规则的朋友来说一下了!!!!!!!!!!!
下面的程序编译时提示MAX,MIN没有初始化,JAVA当中不初始化不也是由JAVA系统默认为0吗?
public class aa
{
public static void main(String args[])
{
final int size=10;
int max,min,i;
int arr[]=new int[size];
for(i=0;i <size;i++)
{
arr[i]=(int)(Math.random()*100);
}
for(i=0;i <size;i++)
{
System.out.println(arr[i]);
max=arr[i] > max ? arr[i]:max;
min=arr[i] < min ? arr[i]:min;
}
System.out.println( "最大值= " + max);
System.out.println( "最小值= " + min);
}
}
而同样是一个程序这样写则不提示没有初始化了如下:
public class Arraymax
{
public static void main(String args[])
{
final int SIZE = 10; //常量
int table[] = new int [SIZE];
int i,max,min;
for (i=0;i <table.length;i++)
table[i] = (int) (Math.random()*100); //产生随机数
System.out.print( "table: "); //输出一维数组
for (i=0;i <table.length;i++)
System.out.print( " "+table[i]);
System.out.println();
max = table[0];
min = table[0];
for (i=1;i <table.length;i++)
{
if (table[i]> max) max = table[i];
if (table[i] <min) min = table[i];
}
System.out.println( "Max= "+max);
System.out.println( "Min= "+min);
}
}
------解决方案--------------------实例变量和静态变量才有默认的初始值,局部变量是没有的,使用之前必须赋值
------解决方案--------------------max=arr[i] > max ? arr[i]:max;//
min=arr[i] < min ? arr[i]:min;//这里的max和min都没有初始化怎么能用呢
max = table[0];
min = table[0]; //这里赋值,已经被初始化了
------解决方案--------------------