我有一个矩阵3x3 = {{1,2,3},{4,5,6},{7,8,9}} 我需要将这个矩阵消除为2x2:{{5,6},{8,9}}(简单地通过切割)。 所以我写了这段代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int matrix2[1][1],m,n;
int matrix[2][2]={{1,2,3},{4,5,6},{7,8,9}};
for(m=0;m<2;m++){
for(n=0;n<2;n++){
matrix2[m][n]=matrix[m+1][n+1];
printf("element on %i m and %i n is %i\n",m,n,matrix2[m][n]);
}
}
return 0;
}
但我无法得到正确的结果。你有什么想法吗?
答案 0 :(得分:1)
虽然数组从零开始编制索引,但您可以使用数组中的元素数来声明它们。尝试:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int matrix2[2][2],m,n;
int matrix[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for(m=0;m<2;m++){
for(n=0;n<2;n++){
matrix2[m][n]=matrix[m+1][n+1];
printf("element on %i m and %i n is %i\n",m,n,matrix2[m][n]);
}
}
return 0;
}