这个程序是简单,但是没有我想要的数组最大值 这个结果,求高手帮忙改正,指点一下
import java.util.*;
public class Daxiao {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double a[]=new double[10];
double max;
System.out.println("从键盘上输入十个数:");
Scanner scan=new Scanner(System.in);
for(int i=0;i<=10;i++){
a[i]=scan.nextDouble();
System.out.println("a["+i+"]"+a[i]);
}
max=a[0];
for(int j=0;j<=10;j++){
if(a[j]>max){
max=a[j];
}
}
System.out.println("数组中最大数是:"+max);
}
}
------解决方案--------------------还是细节问题:for(int i=0;i<=10;i++)数组长度是10.下标是从0开始算的,长度是从1开始算的,i是下标,最大值只能为9不能等于10,以后注意一下了。^_^
int a[] = new int[10];
int max;
System.out.println("从键盘上输入十个数:");
Scanner scan = new Scanner(System.in);
for (int i =0; i <10; i++) {
a[i]= scan.nextInt();
}
max = a[0];
for (int i = 0; i <a.length; i++) {
if (a[i] > max) {
max = a[i];
}
}
System.out.println("数组中最大数是:" + max);
------解决方案--------------------i < 10
------解决方案--------------------Java code
public class Test {
public static void main(String[] args) {
double a[] = new double[10];
double max;
System.out.println("从键盘上输入十个数:");
Scanner scan = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
a[i] = scan.nextDouble();
System.out.println("a[" + i + "]" + a[i]);
}
max = a[0];
for (int j = 0; j < 10; j++) {
if (a[j] > max) {
max = a[j];
}
System.out.println("数组中最大数是:" + max);
}
}
}
------解决方案--------------------
把for循环中的=号去掉,[0-10]共计11个数了,数组会越界的。