清霜一梦

用C语言打印出三角函数

0
阅读(1398)

在网上看到一个实例,是用C 中的* 打印出三角函数cos

复制代码

1 #include 2 #include 3 4 int main() 5 6 { 7 double y; 8 int x,m; 9 10 for(y=1;y>=-1;y-=0.025) 11 { 12 m=acos(y)*40; 13 for(x=1;x
       

复制代码

网络上的是图像扩大10倍,我将它扩大到了40倍。如果你真的要看这个程序的显示结果就要把显示窗口宽度加宽哦。要不显示不正确。

这个题目的下面一个是打印出sinx 。因为cosx 的 反函数的定义域是正。而sinx的反函数的定义域有负数。这个就要分类讨论了。

复制代码

1 //date: 2013/8/15 2 //designer:pengxiaoen 3 //function printf the function sinx (0 <= x <= 6.2) 4 5 6 #include 7 #include 8 9 10 int main ()11 {12 double y;13 int x,i;14 for (y=1.0;y>=-1.0;y=y-0.1)15 { 16 x = asin(y) * 10; 17 if(x>=0)18 {19 for(i=1;i
       

复制代码

显示的结果就是

有一个小插曲: 在定义的时候如果将y定义成float 类型。貌似也可以。其实有点区别。单精度处理之后在函数曲线平滑区是显示不了的。

好吧,不卖关子了。直接说现象

如果将y定义成float 类型 第十四行的y将不能取值-1.这样函数图像Y轴最下方的两个*不不见了。

我后来就把 y>=-1 改成y>=-1.01。这样y是可以取值-1了,但是 这两个* 跑到了最左端。

解决办法,将y定义成double类型。加大精确度。

至于原因我下一篇博文会讨论到,关于他们各自的存储格式以及精度。


Baidu
map