二维数组,线程中的异常;“主要”;java.util.InputMismatchException

二维数组,线程中的异常;“主要”;java.util.InputMismatchException,java,multidimensional-array,inputmismatchexception,Java,Multidimensional Array,Inputmismatchexception,我有个小问题。我需要在一行中读两个单词,分别是PutName和lastname public void Promedios5(){ Scanner Marbis=new Scanner(System.in); String[] x=new String[5]; double[][] a=new double[5][4]; double[] b=new double [5],c=new double[5]; System.out.println("Este

我有个小问题。我需要在一行中读两个单词,分别是PutName和lastname

public void Promedios5(){
    Scanner Marbis=new Scanner(System.in);
    String[] x=new String[5];
    double[][] a=new double[5][4];
    double[] b=new double [5],c=new double[5];
    System.out.println("Este programa genera los promedios de las notas de cuatro unidades\n"
            + "se le solicitarán a usted, el nombre y las cuatro notas");
    System.out.println("Podría ingresarlas ahora por favor:");
    for(int y=0;y<=4;y++){
        System.out.println("Ingrese el nombre:");
        x[y]=Marbis.nextLine();
        for(int z=0;z<=3;z++){
            a[y][z]=Marbis.nextDouble();
        }
        b[y]=a[y][0]+a[y][1]+a[y][2]+a[y][3];
        c[y]=b[y]/4;
    }
    System.out.println("Ahora usted verá los promedios de las personas:");
    System.out.println("Nombre:\t\t\tPromedio");
    for(int m=0;m<=4;m++)
        System.out.printf("%s:\t\t%.2f\n",x[m],c[m]);
}

您只需
flush
Java中的输出

何时丢弃剩余的线路?要解决你的问题,你可以打电话

input.nextLine();
您需要在
nextDouble()
之后执行此操作,因为您希望从下一行读取

我希望下面给出的代码能帮助您解决问题

public void Promedios5(){
  Scanner Marbis=new Scanner(System.in);
  String[] x=new String[5];
  double[][] a=new double[5][4];
  double[] b=new double [5],c=new double[5];
  System.out.println("Este programa genera los promedios de las notas de cuatro unidades\n"
  + "se le solicitarán a usted, el nombre y las cuatro notas");
  System.out.println("Podría ingresarlas ahora por favor:");
  for(int y=0;y<=4;y++){
    System.out.println("Ingrese el nombre:");
    x[y]=Marbis.nextLine();
    for(int z=0;z<=3;z++){
      a[y][z]=Marbis.nextDouble();
    }
    Marbis.nextLine();    //Just add this line here
    b[y]=a[y][0]+a[y][1]+a[y][2]+a[y][3];
    c[y]=b[y]/4;
  }
  System.out.println("Ahora usted verá los promedios de las personas:");
  System.out.println("Nombre:\t\t\tPromedio");
  for(int m=0;m<=4;m++)
  System.out.printf("%s:\t\t%.2f\n",x[m],c[m]);
}
公共无效Promedios5(){
扫描仪Marbis=新扫描仪(System.in);
字符串[]x=新字符串[5];
double[]a=新的double[5][4];
double[]b=新双精度[5],c=新双精度[5];
System.out.println(“在联合国系统中的一般项目\n”
+“律师事务所,名称和名称”);
System.out.println(“Podría Ingrearlas ahora por-favor:”);

对于(int y=0;y您只
flush
Java中的输出

什么时候放弃剩下的线路?要解决您的问题,您可以致电

input.nextLine();
您需要在
nextDouble()
之后执行此操作,因为您希望从下一行读取

我希望下面给出的代码能帮助您解决问题

public void Promedios5(){
  Scanner Marbis=new Scanner(System.in);
  String[] x=new String[5];
  double[][] a=new double[5][4];
  double[] b=new double [5],c=new double[5];
  System.out.println("Este programa genera los promedios de las notas de cuatro unidades\n"
  + "se le solicitarán a usted, el nombre y las cuatro notas");
  System.out.println("Podría ingresarlas ahora por favor:");
  for(int y=0;y<=4;y++){
    System.out.println("Ingrese el nombre:");
    x[y]=Marbis.nextLine();
    for(int z=0;z<=3;z++){
      a[y][z]=Marbis.nextDouble();
    }
    Marbis.nextLine();    //Just add this line here
    b[y]=a[y][0]+a[y][1]+a[y][2]+a[y][3];
    c[y]=b[y]/4;
  }
  System.out.println("Ahora usted verá los promedios de las personas:");
  System.out.println("Nombre:\t\t\tPromedio");
  for(int m=0;m<=4;m++)
  System.out.printf("%s:\t\t%.2f\n",x[m],c[m]);
}
公共无效Promedios5(){
扫描仪Marbis=新扫描仪(System.in);
字符串[]x=新字符串[5];
double[]a=新的double[5][4];
double[]b=新双精度[5],c=新双精度[5];
System.out.println(“在联合国系统中的一般项目\n”
+“律师事务所,名称和名称”);
System.out.println(“Podría Ingrearlas ahora por-favor:”);

for(int y=0;yIt是因为您的
x[y]=Marbis.nextLine();
在获取双精度值后将新行字符作为字符串。在获取双精度值后尝试刷新输入。这是因为您的
x[y]=Marbis.nextLine());
在接受双精度值后将新行字符作为字符串。在接受双精度值后尝试刷新输入。