我认为归结为数据类型我使用矩阵的内容,但在搜索了一段时间之后,我似乎无法找到关于它如何的确定答案应该看。另一方面,如果你看到不同部分出了问题,请告诉我。谢谢!
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int main () {
double a[][3] = {
{1.,2./3.,3.},
{4.,5.,6.},
{7.,8.,9.}
};
int x, y;
for (x = 0; x < 3; x++) {
printf("\n\t\t");
for (y = 0; y < 3; y++) {
printf("%5d", a[x][y]);
}//End y loop
}//End x loop
printf("\n\n\t");
system("pause");
return 0;
} //End main
代码输出如下所示:
01610612736 0
0 0 0
0 0 0
按任意键继续。 。
答案 0 :(得分:0)
%d代表整数,你想要printf()中的%f为double。这有点误导,但%d 不代表双倍。
答案 1 :(得分:0)
printf("%5d", a[x][y]);
此行中的%d
告诉printf将您传递的位解释为int。但是,你传递的是一个浮点值,这就是为什么你得到奇怪的输出。要打印双精度型,您需要使用%f
有关不同printf说明符所期望的数据类型和大小的详细信息,请参阅http://www.cplusplus.com/reference/cstdio/printf/?kw=printf。