C 声明double类型的二维数组?

C 声明double类型的二维数组?,c,C,我得到了下面列出的一个函数,我必须为它创建代码,以找到1x1、2x2或3x3矩阵的行列式 double det (int size, double matrix[size][size]) { 它需要一个double类型的二维数组,作为一个初学者,我不熟悉它,也不知道如何声明它。我在网上查了一下,什么也没找到。我的想法是int[][],但没有任何效果。有什么想法吗?使用C btw,谢谢 例如,如果我使用 int main() { double test[2][2] = {{1.0,2.0},{2

我得到了下面列出的一个函数,我必须为它创建代码,以找到1x1、2x2或3x3矩阵的行列式

double det (int size, double matrix[size][size]) {
它需要一个double类型的二维数组,作为一个初学者,我不熟悉它,也不知道如何声明它。我在网上查了一下,什么也没找到。我的想法是int[][],但没有任何效果。有什么想法吗?使用C btw,谢谢

例如,如果我使用

int main() {
double test[2][2] = {{1.0,2.0},{2.0,3.0}};
det(2, test);
return(0);}
我试图用

double det (int size, double matrix[size][size]) {
double matrix[size][size];
但是我得到了错误

/tmp/tmpwhrzhcqq.c: In function ‘det’:
/tmp/tmpwhrzhcqq.c:9:10: error: ‘matrix’ redeclared as different kind of symbol
9 |   double matrix[size][size];
  |          ^~~~~~
/tmp/tmpwhrzhcqq.c:8:30: note: previous definition of ‘matrix’ was here
8 | double det (int size, double matrix[size][size]) {
  |                       ~~~~~~~^~~~~~~~~~~~~~~~~~

删除不需要的
双矩阵[size][size]声明<功能参数列表中的代码>矩阵
就足够了

如果代码需要另一个矩阵,请使用新名称

注意:代码正在使用C99和一些更高版本的编译器中提供的功能

double det (int size, double matrix[size][size]) {
  // double matrix[size][size];
  double some_other_matrix[size][size];
  double d = 0.0;
  for (int row = 0; row < size; row++) { 
    for (int vol = 0; col < size; col++) { 
      ; // your det code
    }
    ; // your det code
  }
  return d;
}
double det(整数大小,双矩阵[size][size]){
//双矩阵[大小][大小];
加倍一些其他矩阵[大小][大小];
双d=0.0;
对于(int row=0;row
这是否回答了您的问题?与您在函数
det
中使用的方法相同,但使用了
在末尾<代码>双矩阵[大小][大小]您还可以根据大小分配适当的元素没有任何功能。请说得更具体些。发布一些您正在处理的尝试代码和特定错误。在编辑中,
double matrix[size][size]
既是一个函数参数又是一个局部变量:不能在同一个作用域中同时使用同一个名称。