我只是在<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:仍然是新手,所以它看起来像是个愚蠢的问题,但会有所帮助。谢谢!
答案 0 :(得分:1)
printf("%c", field[i][j]);
应该可以解决问题。
正在发生的事情是; printf正在寻找整数类型,因此当它打印您的字段[i] [j]时,它正在打印十进制值,而不是您正在寻找的ascii值。