我不能消除矩阵,哪里是错误的?

时间:2013-12-07 17:10:17

标签: c matrix

我有一个矩阵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;
}

但我无法得到正确的结果。你有什么想法吗?

1 个答案:

答案 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;
}