简体   繁体   English

在 Java 中接受一个二维数组作为输入

[英]Accepting a 2D array as input in Java

I am writing a java program that asks the user to enter the marks(for 2 subjects) of each student(for a total of 4 students).我正在编写一个 java 程序,要求用户输入每个学生(总共 4 个学生)的分数(2 个科目)。 Basically, it is a 2D array operation.基本上,它是一个二维数组操作。

I am stuck at the point where I need to have the user enter the input.我被困在需要让用户输入的地方。 I'm thinking the normal method of input.nextInt() won't work.我在想 input.nextInt() 的正常方法行不通。 Here's my code so far.到目前为止,这是我的代码。 Can someone please help?有人可以帮忙吗?

package Chapter2_Arrays;
import java.util.*;
public class Arrays_ExTwo {

    static final int numberOfSubjects=2;
    static final int numberOfStudents=4;

    static int [][] marks=new int[numberOfSubjects][numberOfStudents];

    static Scanner in=new Scanner(System.in);

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Welcome to Cincinnati Elementary");
        System.out.println("There are "+ " "+ numberOfSubjects+ " "+ "subjects being taught");
        System.out.println("There are "+" "+numberOfStudents+" "+" number of students in the class");
        System.out.println("Enter the subject number followed by the marks of all the students for the subject");
        for(int i=0;i<numberOfSubjects;i++)
        {
            for(int j=0;j<numberOfStudents;j++)
            {
                marks[i][j]=in.
            }
        }

    }

} 

Try this: 尝试这个:

package Chapter2_Arrays;
import java.util.*;
public class Arrays_ExTwo {

    static final int numberOfSubjects=2;
    static final int numberOfStudents=4;

    // byte is a number from -128 to 127; that's big enough for 1-6 marks; you can use char for 'A'-'F' marks.
    static byte [][] marks=new byte[numberOfSubjects][numberOfStudents];

    static Scanner in=new Scanner(System.in);

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Welcome to Cincinnati Elementary");
        System.out.println("There are "+ " "+ numberOfSubjects+ " "+ "subjects being taught");
        System.out.println("There are "+" "+numberOfStudents+" "+" number of students in the class");

        for(int i=0;i<numberOfSubjects;i++)
        {
            System.out.println("Enter the marks of students for subject no. "+(i+1)+":");
            for(int j=0;j<numberOfStudents;j++)
            {
                marks[i][j]=in.nextByte();
                System.out.println("Mark of student no. " + (j+1) + " for subject no. " + (i+1) + "was set to " + marks[i][j]);
            }
        }

    }

}  

Try this:试试这个:

import java.util.Scanner;
public class temp {
public static void main(String[] args) {

    int[][] my_array = create2DArray(4, 2);
    takeUserInput(my_array);
    displayElements(my_array);

}

public static int[][] create2DArray(int numRows, int numCols){
    int[][] arrayInput = new int[numRows][numCols];
    return arrayInput;
}

public static void takeUserInput(int[][] arrayInput){

    Scanner sc = new Scanner(System.in);

    for(int i = 0; i < arrayInput.length; i++){
        for(int x = 0; x < arrayInput[i].length; x++) {
            System.out.print("Enter number for the Index "+ i + "," + x + " ");
            arrayInput[i][x] = sc.nextInt();
        }
    }

}

public static void displayElements(int[][] arrayInput){

    for(int i = 0; i < arrayInput.length; i++){
        for(int x = 0; x < arrayInput[i].length; x++) {
            System.out.println(arrayInput[i][x]);
        }
    }

}


}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM