我的二维字段不打印其内容

时间:2019-08-26 17:47:19

标签: c

我只是在<math.h>文件中试用窦性功能,想在二维字段中绘制它。代码如下:

char field[150][11];

for(int i = 0; i< 150; i++)
{   

   double value_of_sin = sin((i*M_PI)/180);
   value_of_sin *= 10; // to take an after-decimal-point number as 'second dimension' of my field
   int intpart = (int)value_of_sin;

  if(intpart > 0) //still grows
     field[i][intpart] = '%';

  else 
  {   
     intpart *= -1; //the sin function is dropping here so i need positive numbers
     field[i][intpart] = '%';
  }   
}

for(int i =0; i<11; i++)
{   
  for(int j =0; j<150; j++)
     printf("%i",field[j][i]);

  printf("\n");
}  

目的是绘制直到150度(试图具有360度-但我的窗口宽度不大,所以最终会在行之间分裂)。但是,当尝试执行printf函数时,它不会打印'%'字符,而是打印随机数(嗯,不是随机的,可疑地重复了'2'和'3'数字。我试图-在代码的顶部-清除2个for循环中的字段,并为该字段赋予''值,但并没有帮助。我想问一下如何使printf函数打印'%'字符。

PS:仍然是新手,所以它看起来像是个愚蠢的问题,但会有所帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

printf("%c", field[i][j]); 应该可以解决问题。

正在发生的事情是; printf正在寻找整数类型,因此当它打印您的字段[i] [j]时,它正在打印十进制值,而不是您正在寻找的ascii值。