我想将向量“追加”到矩阵,例如

[1 2; & (5       [1 2 5;
3 4]     6) -->   3 4 6];


试图模拟数学脚本。我似乎不了解C中的数组和指针,因为当我尝试在C中使用以下代码时,

编辑:张贴混乱的代码是多余的。使用功能mmerge时,“问题”仍然存在。

#include <stdio.h>

//void printMatrix(const int N, const int M, double A[N][M]);

void mmerge(const int N, const double A[N][N], const double b[N], double F[N][N])
{
    for(int i = 0; i < N; i++) {
        for(int j = 0; j < N; j++) {
            F[i][j] = A[i][j];
        }
        F[i][N] = b[i];
    }
}

// Prints a two-dimensional array as a matrix
void printMatrix(const int N, const int M, double A[N][M]){
    int i, j;
    for(i=0; i<N; ++i){
        printf("|");
        for(j=0; j<M; ++j){
            printf(" % 8.4f", A[i][j]);
            if(j != M-1) printf(",");
        }
        printf(" |\n");
    }
    printf("\n");
}

int main()
{
    const int N=2;
    double A[2][2] = {{1,2},{3,4}};
    double b[2] = {5,6};
    double F[2][3];
    mmerge(2,A,b,F);
    printMatrix(2, 3, F);
    return 0;
}


我懂了

|   1.0000,   2.0000,   3.0000 |
|   4.0000,   6.0000,   0.0000 |


会发生什么,为什么不是预期的结果?

最佳答案

忘记了N+1

我想将向量“追加”到矩阵,例如

[1 2; & (5       [1 2 5;
3 4]     6) -->   3 4 6];


试图模拟数学脚本。我似乎不了解C中的数组和指针,因为当我尝试在C中使用以下代码时,

编辑:张贴混乱的代码是多余的。使用功能mmerge时,“问题”仍然存在。

#include <stdio.h>

//void printMatrix(const int N, const int M, double A[N][M]);

void mmerge(const int N, const double A[N][N], const double b[N], double F[N][N]+1)
{
    for(int i = 0; i < N; i++) {
        for(int j = 0; j < N; j++) {
            F[i][j] = A[i][j];
        }
        F[i][N] = b[i];
    }
}

// Prints a two-dimensional array as a matrix
void printMatrix(const int N, const int M, double A[N][M]){
    int i, j;
    for(i=0; i<N; ++i){
        printf("|");
        for(j=0; j<M; ++j){
            printf(" % 8.4f", A[i][j]);
            if(j != M-1) printf(",");
        }
        printf(" |\n");
    }
    printf("\n");
}

int main()
{
    const int N=2;
    double A[2][2] = {{1,2},{3,4}};
    double b[2] = {5,6};
    double F[2][3];
    mmerge(2,A,b,F);
    printMatrix(2, 3, F);
    return 0;
}

关于c - 在C中合并多维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53347264/

10-15 00:12