2016-08-07 6 views
1

私は少し質問があります。私は名前と姓を入力するために2つの単語を1行で読む必要があります。私は、これが結果です(私はラインに2つの以上の単語のためにそれを使用することを知っているx[y]=Marbis.nextLine();
が、2番目のチャンスでは、このように、私にエラーをマーク:ここ2次元配列、スレッド "main"の例外java.util.InputMismatchException

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]); 
} 

私はエラーを持っています)私はnextLineで配列を使用することができると思います。

MArio Albert 
100 
100.00 
78.00 
100.00 
Ingrese el nombre: 
John Antoinie 
Exception in thread "main" java.util.InputMismatchException 
    at java.util.Scanner.throwFor(Scanner.java:864) 
    at java.util.Scanner.next(Scanner.java:1485) 
    at java.util.Scanner.nextDouble(Scanner.java:2413) 
    at vectormarbis1.MarbisVectors2.Promedios5(MarbisVectors2.java:125) 
    at vectormarbis1.VectorMarbis1.main(VectorMarbis1.java:28) 
C:\Users\ManoloAurelio\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 
BUILD FAILED (total time: 39 seconds) 
+0

これは、x [y] = Marbis.nextLine();は、二重値を取った後に新しい行文字を文字列として取り込むためです。二重値を取った後、入力をフラッシュしてみてください。 – VatsalSura

答えて

0

あなたはJavaでのみflush出力。

残りの行を破棄するタイミングはいつですか?あなたの問題を解決するために、あなたはあなたが次の行からの読み込みをすることを期待するようnextDouble()後にこれを実行する必要が

input.nextLine(); 

呼び出すことができます。

下記のコードが問題の解決に役立つことを願っています。

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]); 
} 
関連する問題