绘制余弦曲线
要求:在屏幕上用“*”(星号)显示0°~360°的余弦函数cos(x)曲线。(不使用数组)
问题分析与算法设计
对一般的显示器来说,只能按行输出,即:输出第一行信息后,想能向下一行输出,不能再返回到上一行。为了获得一个周期(0°~360°)的余弦函数图形,j就必须在一行中一次输出两个“*”。
为了同时得到余弦函数cos(x)图形在一行上的两个点,考虑利用cos(x)的左右对称性。将屏幕行方向定义为x,列方向定义为y。若定义图形的总宽度为62行,计算出x行0°~180°时y点坐标m,那么在同一行与之对称的180°~360°的y点坐标就应为62-m。程序中利用反余弦函数acos计算坐标(x,y)的对用关系。
使用这种方法编出的程序短小精炼,体现了一定的技巧。
程序说明与注释
int main()
{
double y; //此处y为浮点型,提高计算精度
int x;
int m;
for(y = 1; y >= -1; y -= 0.1) //y值从1到-1,步长为0.1
{
m = acos(y)*10; //计算出y值对应的横坐标m,乘10为图形放大倍数
for(x = 1; x < m; x++)
{
printf(" "); //控制打印左侧的空格
}
printf("*"); //控制打印左侧的*号
for( ; x < 62 - m; x++)
{
printf(" "); //控制打印中间的空格
}
printf("*\n"); //控制打印右侧*号;每行只有两个*号,所以打印完第二个*号直接转下一行
}
return 0;
}
运行结果
(现在太晚了,正弦函数的绘制方法就留到明天再和大家分享啦~ 正弦函数可没那么简单哦)