C语言 作为参数传递给函数的浮点矩阵给出了垃圾值

ffvjumwh  于 2023-05-28  发布在  其他
关注(0)|答案(1)|浏览(154)

我想把一个float矩阵从main函数传递给另一个函数,代码如下:

#include <stdio.h>
 
// n must be passed before the 2D array
void print(int m, int n, float arr[][n])
{
    int i, j;
    for (i = 0; i < m; i++)
      for (j = 0; j < n; j++)
        printf("%d ", arr[i][j]);
}
 
int main()
{
    float arr[][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int m = 3, n = 3;
    print(m, n, arr);
}

这给出了输出:电话:021 - 888888888传真:021 - 888888888
我尝试用int替换float作为数组的类型,它工作得非常好。我期望它以与float相同的方式工作,输出“1 2 3 4 5 6 7 8 9”,但它输出的是垃圾值。

ctehm74n

ctehm74n1#

%dfloat的错误格式。使用%f应该可以解决这个问题,您应该可以看到预期的结果。如果你只想打印浮点数的“整个”部分,你也可以指定精度:

printf("%.0f ", arr[i][j]);

相关问题