我想把一个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”,但它输出的是垃圾值。
1条答案
按热度按时间ctehm74n1#
%d
是float
的错误格式。使用%f
应该可以解决这个问题,您应该可以看到预期的结果。如果你只想打印浮点数的“整个”部分,你也可以指定精度: