Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 打印2D矩阵?_C_Arrays_Matrix - Fatal编程技术网

C 打印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

您好,我不明白我的错误在哪里,我想逐行打印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 ", 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
的文档,并阅读所有关于格式说明符的信息。