gpt4 book ai didi

c - 传递矩阵作为参数

转载 作者:太空狗 更新时间:2023-10-29 15:01:06 26 4
gpt4 key购买 nike

我想传递两个矩阵作为参数。这些矩阵有不同的大小,我不明白我必须如何完成这项工作:

#include <stdio.h>
#include <stdlib.h>


void f(int m[3][], int n);

int main()
{
int A[3][3]={{1,2,3},{4,5, 6},{7,8,9}};
int B[3][2]={{1,2},{3, 4}, {5, 6}};

f(A, 3);
f(B, 2);

return 0;
}

void f(int m[3][], int n)
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<n;j++)
printf("%5d", m[i][j]);
}
return;
}

我该怎么做?

最佳答案

据我所知,唯一安全的方法是在参数中包含矩阵维度,或者制作某种矩阵结构

选项 A)尺寸作为参数

void f(int **m, int w, int h )
{
int i,j;
for(i=0;i<w;i++)
{
for(j=0;j<h;j++)
printf("%5d", m[i][j]);
}
return;
}

选项 B)使用结构

typedef struct Matrix
{
int w, h;
int** m;
} Matrix;

void f ( Matrix *m )
{
for ( int i = 0; i < m->w; ++i )
{
for ( int j = 0; j < m->h; ++j )
{
printf(%5d", m->m[i][j]);
}
}
}

关于c - 传递矩阵作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10625547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com