c语言打印三角函数图像,用C语言打印出三角函数

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

69c5a8ac3fa60e0848d784a6dd461da6.png1 #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

14     printf("*");

15     for(;x<248-m;x++)printf(" ");

16     printf("*\n");

17   }

18  system("pause");

19 }

69c5a8ac3fa60e0848d784a6dd461da6.png

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

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

69c5a8ac3fa60e0848d784a6dd461da6.png1 //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

27        x = abs(x)+32;28        for(i=1;i

69c5a8ac3fa60e0848d784a6dd461da6.png

显示的结果就是

716425053067cf0c395986551dcd9cad.png

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值