2017-11-18 121 views
-5

我不是问每个人说的答案即时通讯问我必须改变什么,以便打印出一个二维数组的部分,例如如果数组有5行和5列如何我会打印出最后3行和最后3列。如何打印二维数组的一部分

import java.util.Scanner; 

public class multiplication { 
    static int a,b; 
    public static void main(String[] args){ 
    Scanner input = new Scanner(System.in); 
    a =input.nextInt(); 
    b = input.nextInt(); 

int[][] matrix = new int[a][b]; 


matrix = timesTable(a,b); 


for (int row = 0; row < matrix.length; row++) { 
    for (int column = 0; column < matrix[row].length; column++) {  
     System.out.print(" "+matrix[row][column] + "\t|"); 
     } 
     System.out.println(); 
     } 


} 




public static int[][] timesTable(int r, int c) 
{ 
    int [][] yes = new int[c][c]; 
    for (r = 0; r < yes.length ; r++) 
    { 
     for (c = 0; c < yes[r].length; c++) 
     { 

       yes[r][c] = (r+1)*(c+1); 

     } 
      } 


    return yes; 
} 
} 
+0

您希望发生的操作究竟是什么? – ifly6

+1

你想达到什么目的?你想输入什么以及期望的输出是什么?举一些例子。同时解释你的代码的作用,而不是仅仅倾倒它,谢谢。 – Zabuza

+0

你的要求不清楚。 “所以如果我输入4和4,它会打印出来”它听起来没有什么信息,请重新说明你的要求 –

回答

0
if((row = 0 && col > 1) ||(row > 1 && col != 1)) { 
    //print 
} 

这个逻辑应该适用于你的榜样。但我不明白你想要做什么。 你可以尝试解释一下你想做什么吗?

编辑:你可能想检查一下。 Oracle documentation使用arraycopy和arraymanipulation的页面底部

+0

我的意思是我正在制作一张乘法表,我想如何做,而不是打印整个表我想打印的部分,而不是看到1和1 1和2乘以其开始在5和5乘以 –

0

该练习的目标是构建矩阵然后打印矩阵 - 或者 - 您是否只需显示所需的输出? 我认为这是一个班级作业。

提示:想想这个..如果你输入2 & 5,你想要一个2x5矩阵还是一个4x4矩阵?当你分配你的矩阵大小时,这很重要。

+0

目标是打印矩阵从4x4矩阵开始从2结束于5在两个列和行 –

+0

你能不能给我解释一下如何在示例代码中错误地做到这一点 –

+0

@YaMom我明白你想要的输出。我只是想知道这个练习是否需要你创建一个矩阵然后打印,或者如果你可以做一组nexted循环来显示输出。 – robertf