如何使用一维数组存储二维数组的一维? 这是我到目前为止,我只是不能让1D数组存储2D阵列中的任何东西。
编辑:循环完全按照需要工作。我只需要制作2个一维数组来存储2维数组的每个维度。
int[][] tutorData = { // students per day (MTW) per tutor
{25, 3, 0}, // Amy
{14, 5, 12}, // John
{33, 22, 10}, // Nick
{0, 20, 5}}; // Maria
int numOfDays = tutorData[0].length; // number of days = number of "columns"
int numOfTutors = tutorData.length; // number of tutors = number of "rows"
int[] sumPerDay = {tutorData[i]};
sumPerDay = new int [numOfDays]; // array to store total # of students per day
int[] sumPerTutor = {tutorData[j]};
sumPerTutor = new int[numOfTutors]; // array to store total # of students per tutor
for (int i = 0; i < tutorData.length; i++) {
for (int j = 0; j < tutorData[i].length; j++) {
if (j == 0) {
System.out.println("Tutor " + (i + 1) + " met: " + tutorData[i][j] + "students on (M) ");
}
if (j == 1) {
System.out.println("Tutor " + (i + 1) + " met: " + tutorData[i][j] + "students on (T) ");
}
if (j == 2) {
System.out.println("Tutor " + (i + 1) + " met: " + tutorData[i][j] + "students on (W) ");
}
System.out.println();
}
答案 0 :(得分:3)
这是一个二维数组,因为tutorData[i]
是一个数组:
int[] sumPerDay = {tutorData[i]};
试试这个:
int[] sumPerDay = tutorData[i];
答案 1 :(得分:0)
您需要使用嵌套循环遍历2d数组,并将每个列和行中的值总和保存到2个不同的数组中。
int[][] tutorData = { // students per day (MTW) per tutor
{25, 3, 0}, // Amy
{14, 5, 12}, // John
{33, 22, 10}, // Nick
{0, 20, 5}}; // Maria
int numOfDays = tutorData[0].length; // number of days = number of "columns"
int numOfTutors = tutorData.length; // number of tutors = number of "rows"
int[] sumPerDay = new int [numOfDays]; // array to store total # of students per day
int[] sumPerTutor = new int[numOfTutors]; // array to store total # of students per tutor
for(int i=0; i<numOfDays; i++){
for(int j=0; j<numOfTutors; j++){
sumPerDay[i] += tutorData[j][i];
sumPerTutor[j] += tutorData[j][i];
}
}
sumPerDay
将包含每列中的值总和=每天的学生总数。
sumPerTutor
将包含每行中的值总和=每位导师的学生总数。