class test3
{
public static void main(String[] z)
{
int a[]={123456789};
for(int i=0;i<=a.length;i++)
{
System.out.println("hello");
if(a[i]<=a[i]) //is this a right way
System.out.println("min"+a[i]);
if(a[i]>=a[i-1]) //is this a right way
System.out.println("max="+a[i]);
else
System.out.println("error");
}
}
}
在主题&#34; main&#34;中得到以下异常
java.lang.arrayindexoutofbound exception -1 at test3.main(test3.java:9)
答案 0 :(得分:2)
坦率地说,你的代码有很多问题,但是如果我理解你的目标,你需要像
这样的东西int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // <-- declare an array.
int min = a[a.length - 1]; // <-- set an initial min.
int max = a[0]; // <-- set an initial max.
if (min > max) { // <-- check if they're reversed,
min = a[0]; // if so swap them.
max = a[a.length - 1];
}
for (int i = 1; i < a.length - 1; i++) { // <-- loop
if (a[i] < min) // <-- is a[i] less then min,
min = a[i]; // if so update min.
if (a[i] > max) // <-- is a[i] greater then max,
max = a[i]; // if so update max.
}
System.out.printf("min = %d, max = %d%n", min, max);
答案 1 :(得分:0)
使用以下方法查找最大值和最小值。
对于MAX:
public static int getMaxValue(int[] numbers){
int maxValue = numbers[0];
for(int i=1;i < numbers.length;i++){
if(numbers[i] > maxValue){
maxValue = numbers[i];
}
}
return maxValue;
}
对于MIN:
public static int getMinValue(int[] numbers){
int minValue = numbers[0];
for(int i=1;i<numbers.length;i++){
if(numbers[i] < minValue){
minValue = numbers[i];
}
}
return minValue;
}
答案 2 :(得分:0)
public static void main(String[] z)
{
int a[]={1,2,3,4,5,6,7,8,9};//first error initialize the array like this
int min =0;
int max =0;
min = a[0];//1
for(int i=1;i<a.length;i++)//2
{
if(a[i]<min)
{
min =a[i];
}
}
System.out.println("min "+min);
max = a[0];//3
for(int i=1;i<a.length;i++)//4
{
if(a[i]>max)
{
max =a[i];
}
}
System.out.println("max : "+max);
}
1.将变量min初始化为数组在[0]
中包含的值2.迭代数组并检查数组是否包含较少的值,然后初始化,如果是,则将该值分配给min,最后显示min
3.将变量max初始化为数组在[0]
中包含的值4.迭代数组并检查数组是否包含更大的值然后初始化如果是,则将该值分配给max并最终显示max