2013-11-22 169 views
1

如何使用一维数组来存储二维数组的一维? 这是我迄今为止,我只是不能让1D数组存储任何二维数组。2维阵列

编辑:循环正常工作。我只需要制作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

你需要通过你的嵌套循环和二维数组迭代将每个列和行中的值总和保存到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将包含每行中的值的总和=每个导师的学生总数。

+0

谢谢,帮助了很多! – Indyvette

3

这将是一个二维数组,因为tutorData[i]是一个数组:

int[] sumPerDay = {tutorData[i]}; 

试试这个:

int[] sumPerDay = tutorData[i]; 
+0

唯一有这个是我有一个for循环打印二维数组(定义i和j作为int(s)),但由于2个1D数组是在循环之前声明它冲突,并仍然打印0时我做了调整 – Indyvette

+0

然后问题是你没有发布代码包含for循环,所以我们可以给你的建议,你需要... ;-) – Axel