C 打印2D矩阵?
您好,我不明白我的错误在哪里,我想逐行打印2D矩阵的内容:C 打印2D矩阵?,c,arrays,matrix,C,Arrays,Matrix,您好,我不明白我的错误在哪里,我想逐行打印2D矩阵的内容: void print_matrix(char s[], double m[], size_t rows, size_t cols) { printf("%s =\n", s); for (size_t i = 0; i < rows; i += 1) { for (size_t j = 0; j < cols; j += 1) { printf("%d
void print_matrix(char s[], double m[], size_t rows, size_t cols)
{
printf("%s =\n", s);
for (size_t i = 0; i < rows; i += 1)
{
for (size_t j = 0; j < cols; j += 1)
{
printf("%d ", m[i][j]);
}
printf("\n");
}
}
I want it to be like this :
m1 =
1 2 3 4
5 6 7 8
9 10 11 12
无效打印矩阵(字符s[],双m[],大小行,大小列)
{
printf(“%s=\n”,s);
对于(大小i=0;i<行;i+=1)
{
对于(尺寸j=0;j
这给了我一个错误:m[i][j],但没有其他错误。感谢您的帮助,我是一名初学者如果您想让
m
作为一个大小可变的二维数组存在,您可以使用VLA执行类似操作。因为您是在for循环的条件内声明变量,所以编译器应该是C99兼容的,所以您应该可以访问VLAs*
void print_matrix(char s[], size_t rows, size_t cols, double m[rows][cols])
{
printf("%s =\n", s);
for (size_t i = 0; i < rows; i += 1)
{
for (size_t j = 0; j < cols; j += 1)
{
printf("%lf ", m[i][j]);
}
printf("\n");
}
}
void print_矩阵(字符s[],大小行,大小列,双m[行][cols])
{
printf(“%s=\n”,s);
对于(大小i=0;i<行;i+=1)
{
对于(尺寸j=0;j
*脚注:虽然VLA是C99标准中的一项强制性内容,但C11标准将其作为可选功能。我建议您阅读一本好书或教程,并阅读一些数组的基础知识。
double m[]
-看起来不像2D矩阵。我知道python和C#我一直都是这样做的,而且很有效。C既不是python也不是C#…你应该针对不同的问题问一个新问题。但在此之前,我建议您查看printf
的文档,并阅读所有关于格式说明符的信息。