c语言绘制余弦曲线,请给出详细的注释

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:01:06
#include<stdio.h>
#include<math.h>
void main()
{
double y;
int x,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"); /*控制打印同一行中对称的右侧*号*/
}
}

还是不大明白,请再详细的解释一下,谢谢

数字62是 2π(3.1415926)*10 的近似值,这下该明白了吧。也就是说y变量控制着*所在第几行,而x变量控制着*在每行中的应该出现的位置。

呵呵,原理是这样的,这是一个用*来描绘余弦曲线的程序,而我们知道printf在输出的时候如果不指定位置,他是默认从左到右输出,当加了\n控制符时,他会换行下一行仍是从左到右输出,而模拟余弦曲线时为了让*在该出现的位置出现我们必须控制printf函数输出*的位置那么什么也不出也不行,只能用printf输出“空格”,而空格是看不见的,能达到同样效果。这样在每行,没有曲线的位置输出的是空格而有曲线的位置就输出了*。最后所有行的*就组成了余弦曲线。
如下所示(字母V,有*的每行中*的前面是有空格的):
* *
* *
* *
*

恩,问题快过期了,把分给我吧。
感谢