如何仅忽略最外面的行和列,将矩阵的特定值交换为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,则输出应该不同,依此类推。
答案 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