无法在C中打印矩阵

时间:2014-04-14 21:20:05

标签: c matrix printing

我认为归结为数据类型我使用矩阵的内容,但在搜索了一段时间之后,我似乎无法找到关于它如何的确定答案应该看。另一方面,如果你看到不同部分出了问题,请告诉我。谢谢!

#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

按任意键继续。 。

2 个答案:

答案 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