在C语言中打印矩阵时遇到问题
我认为这可以归结为数据类型im用于矩阵的内容,但在搜索了一段时间后,我似乎无法找到应该是什么样子的确切答案。另一方面,如果你发现另一部分有问题,也请告诉我。谢谢在C语言中打印矩阵时遇到问题,c,matrix,printing,C,Matrix,Printing,我认为这可以归结为数据类型im用于矩阵的内容,但在搜索了一段时间后,我似乎无法找到应该是什么样子的确切答案。另一方面,如果你发现另一部分有问题,也请告诉我。谢谢 #include <stdio.h> #include <ctype.h> #include <stdlib.h> int main () { double a[][3] = { {1.,2./3.,3.}, {4.
#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
按任意键继续 %d代表整数,您希望在printf()中用%f代表double。这有点误导,但%d不代表double
printf(“%5d”,a[x][y])代码>
此行中的%d
告诉printf将传递的位解释为int。但是,传递给它的是浮点值,这就是为什么会得到奇怪的输出。要打印双精度打印,您需要使用%f
有关不同printf说明符所期望的数据类型和大小的更多信息,请参阅。完美解决了这一问题。我不能再等几分钟,但我已经测试过了。感谢您的快速响应!我想我只是需要一双新鲜的眼睛。如果您完全确信错误不存在,则很难发现错误:感谢答案和链接!我将来肯定会引用它。
01610612736 0
0 0 0
0 0 0