我们有关于二维数组的预先分配。问题是这样的。将接受姓名和分数的计划。将数据存储在二维数组上。然后显示学生列表及其分数,并获得最高分。
由于我们的教练教我们基于阵列的基础我不太了解这个2D阵列我已经做了很多研究,但仍然无法得到我需要的确切代码。
以下是我未完成的代码。到目前为止我的问题是我无法打印所有的名字和分数。它只打印输入的最后数据。
任何帮助都会做tnx。
batchSize
}
答案 0 :(得分:0)
创建像
这样的二维数组 String[][] arr2d = new String[students][2];
。
在你的循环中,你可以使用
arr2d[i][0] = name;
和
arr2d[i][1] = fscore;
要检查最高分,请迭代数组并比较分数字段(arr2d[i][1]
)。
答案 1 :(得分:0)
二维数组在Java中被称为数组数组,因为Java中没有二维数组。为什么?因为如果是2D数组则应将它们存储在连续的内存位置。阅读2D阵列。阅读here有关2D数组或数组数组如何工作的信息。
String[][] studentList = new String[10][2];
第一个字段表示行数,第二个字段表示您的案例中的列数。因此,上面将采用10个学生阵列,其中每个学生阵列都有两个元素[0,1]。
我已经开发了一个示例代码示例,以帮助您理解数组,如何使用try和catch,异常和循环。
public static void main(String[] args) {
//your 2D array or array of arrays def
String[][] studentList = null;
Scanner input = new Scanner(System.in);
//temporary students count
int students = 1;
// i is used to take number of students, -1 to initialize do while loop
int i = -1;
do {
try {
//executed only once
if (i == -1) {
System.out.println("Enter the number of students : ");
// if you provide anything but integer, this throws
// InputMisMatchException so validate if
// Also validate against negative integer input
students = input.nextInt();
// move the input cursor to beginging to line
// this is because of using input.nextInt() before
input.nextLine();
//Initialize 2D array, make sure students is +ve
studentList = new String[students][2];
//increment i to 1 so above if condition fail
i++;
} else {
System.out.println("Enter Name for Student " + i + " :");
studentList[i][0] = input.nextLine();
System.out.println("Enter Score for " + studentList[i][0] + " : ");
studentList[i][1] = input.nextLine();
i++;
//all above inputs can reside inside one try/catch block
//no need for extra try/catch
}
} catch (Exception e) {
// all exceptions caught here, any type because Exception is
// parent of all others i.e. InputMisMatchException etc.
System.out.println("Error enter name!");
}
//loop breaks after n student is inputed
} while (i < students);
// close the input stream
input.close();
//making sure that student has been initialized and has student data
if (studentList != null && studentList.length > 0) {
System.out.println("The students are as follow: ");
// To display students yo need to iterate through them using loop
for (int j = 0; j < students; j++) {
System.out.println(studentList[j][0] + " : " + studentList[j][1]);
}
}
}