如何仅打印矩阵的特定值,忽略最外面的行和列

时间:2015-04-06 04:37:41

标签: java c

如何仅忽略最外面的行和列,将矩阵的特定值交换为1。

例如, 这是我的输入矩阵:

x x x x 

x x x x     

x x x x    

x x x x

输出应该是

x x x x    

x 1 1 x    

x 1 1 x    

x x x x

如果矩阵是5乘以5,则输出应该不同,依此类推。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情 C代码

for(int i=0; i<n; i++)  // here n is number of row
{
    for(int j=0; j<n; j++) {  // here n is number of column
       if((i&&j) && (i!= n-1 && j!=n-1)){
             a[i][j] = 1; //assign value 1
       }
       printf("%d ", a[i][j]);   // here `a` your 2D matrix
    }
    printf("\n");
}

答案 1 :(得分:0)

试试这个

 int a[][] = new int [4][4];
    int i,j;
    int s = 0;
    int len=a.length-1;

    for(i= 0;i<a.length; i++)
        for(j = 0; j<a[i].length; j++){
            a[i][j] = (int)(Math.random()*10);
        }
         System.out.println("Original matrix\n");   
    for(i=0;i<a.length;i++){
        for(j=0;j<a[i].length;j++)

        System.out.print(a[i][j] + "\t");
        System.out.println();   
    }
    for(i=0;i<a.length;i++){
        for(j=0;j<a[i].length;j++)
            if(!((i==0)||(j==0)||(j==len)||(i==len))){
                a[i][j]=1;
            }

    }
  System.out.println("\nConverted matrix\n");   
   for(i=0;i<a.length;i++){
        for(j=0;j<a[i].length;j++)

        System.out.print(a[i][j] + "\t");
        System.out.println();   
    }

输出

Original matrix

8   2   8   9   
6   7   6   0   
1   8   1   7   
5   2   1   7   

Converted matrix

8   2   8   9   
6   1   1   0   
1   1   1   7   
5   2   1   7

Demo