<img src="https://img-blog.youkuaiyun.com/20150912171702235?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />在屏幕上用*输出余弦函数
本程序不使用数组,在区间0-360度内,曲线是关于180度对称的,所以每一行应输出两个*,并且关于180度对称。由于纵坐标y的取值为-1到1,利用反余弦函数求出横坐标x,x取3.14弧度即为180度。总的*个数为3.14*10*2=62个,即为m的值。
</pre><pre name="code" class="cpp">#include <stdio.h>
#include <math.h>
main()
{
<span style="white-space:pre"> </span>double y=0;
<span style="white-space:pre"> </span>int x=0,m=0;
<span style="white-space:pre"> </span>for (y=1;y>=-1;y-=0.1)//y为列方向,从-1到1, 步长为0.1
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>m=acos(y)*10; //计算出y对应的弧度m,乘10为图形放大倍数
<span style="white-space:pre"> </span>for(x=1; x<m; x++)
<span style="white-space:pre"> </span>printf(" ");
<span style="white-space:pre"> </span>printf("*"); //控制打印左侧的*号
<span style="white-space:pre"> </span>for(;x<62-m;x++)
<span style="white-space:pre"> </span>printf(" ");
<span style="white-space:pre"> </span>printf("*\n"); //控制打印同一行中右侧*号
}
}
运行结果: