为什么输出不了数据、是什么问题


package homework5;

import java.util.Scanner;

public class B {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        int a;
        int i,j,k,r;
        int[]x=new int [10];
        int max1=0,max2=0;
        for(i=0;i<10;i++)
        {
            a=in.nextInt();
            x[i]=a;
            a=0;
        }
            
        for(j=0;j<10;j++)
        {
            if(x[i]>max1)
            {
                max1=x[i];
            }
            else if(max2<max1&&max2>x[i])
            {
                max2=x[i];
            }
        }
        
        System.out.println(max1+""+max2);
    }

}

img

这一块的i换成j

img

你自己判断一下,24行的x[i]中的i等于多少?
上面for循环结束后,i=10,这时x[10]是越界的,程序都爆掉了

第二个循环里的i应该改为j


public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int i;
        int[] x = new int[10];
        int max1 = 0, max2 = 0;
        for (i = 0; i < 10; i++) {
            x[i] = in.nextInt();
        }

        for (i = 0; i < 10; i++) {
            if (x[i] > max1) {
                max2 = max1;
                max1 = x[i];
            }
        }

        System.out.println(max1 + " " + max2);
    }