【问题标题】:Inserting a matrix and an integer to a function将矩阵和整数插入函数
【发布时间】:2015-12-22 13:02:53
【问题描述】:

假设我有一个包含 x 行和 y 列的矩阵和一个整数 a,我想创建一个函数,该函数采用矩阵并将每行乘以整数 a(我知道我可以简单地用 a循环)。如何编写函数的开头? function( int a, matrix[x],[y])? (我用的是C

【问题讨论】:

标签: c arrays function matrix


【解决方案1】:

在 C 中创建矩阵(二维数组)并不像在 C#、Java 等中那么简单。您必须创建一个 数组数组 - 通过使用指针。让我给你看一个函数:

函数 fill2D() 采用 3 个参数 - 指向矩阵的指针、行数、列数。

functions.h文件中fill2D()函数的声明

extern void fill2D(float **pole, int r, int c);`

functions.c文件中fill2D()函数的定义

void fill2D(float **pole, int r, int c) {
int i, j;

for (i = 0; i < r; i++) {
    for (j = 0; j < c; j++) {
        pole[i][j] = 1;
    }
}

这是 ma​​in.c 中的代码:

fill2D(p_float_array, rows, columns);

fill2D() 函数的参数定义:

float **p_float_array = NULL;
int rows = 10;
int columns = 3;

希望,这是一个有用的答案:)

【讨论】:

    【解决方案2】:

    几乎是最简单的方法。您可以通过多种方式声明二维数组。

    void ApplyConstant(int c, int matrix[][col], int row)
    {
        for (j = 0; j < col; j++)
        {
            // access by matrix[row][j]
        }
    }
    

    【讨论】:

    • 我说我知道如何循环执行。我只是想知道如何将它们插入到函数中
    【解决方案3】:

    如果我没听错的话,你需要声明这个函数。 在这种情况下,我使用:

    void func(int a, int* matrix, int len);
    int main(void) {
        int matrix[4][4] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
        func(3,matrix[4],4);
        return 0;
    }
    
    void func(int a, int* matrix, int len) {
        //your loop code here...
    }
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 2021-05-11
      相关资源
      最近更新 更多