求教一道C语言题目!
函数y=sin(x)+cos(2x)+sin(3x)+cos(4x),x在0-720度范围,请按字符位置变化的形式,在屏幕上输出该函数的图形,注意y为屏幕向右坐标,x为屏...
函数y=sin(x)+cos(2x)+sin(3x)+cos(4x),x在0-720度范围,请按字符位置变化的形式,在屏幕上输出该函数的图形,注意y为屏幕向右坐标,x为屏幕向下坐标(提示:屏幕横屏最大72个字符)
求大神帮忙写一下啊啊啊!!! 展开
求大神帮忙写一下啊啊啊!!! 展开
1个回答
展开全部
y的取值:每项取值都是-1~+1范围,四项和假设为-4~+4,由于y是横坐标,72/2=36,y值0值位于第36字符,对应某y值,需要在y/4*36+36=y*9+36这个位置打印函数值
x的取值:0~720度,需要转换为弧度制再调用三角函数,为利于观察取间隔10度
如果想绘制y=0的坐标轴,需要确认遮挡关系:当函数值落在坐标轴时,不画坐标轴
#include<stdio.h>
#include<math.h>
#define BL 10 //间隔10度绘制一点
#define PI 3.1415926
void main() { double x,y,t; int yy,i,b;
for ( x=0;x<=720;x+=BL ) {
t=PI*x/180; //转换为弧度制取值
y=sin(t)+cos(2*t)+sin(3*t)+cos(4*t);
yy=y*9+36; //y轴原点位于36字符处
for ( i=0;i<72;i++ ) {
b=0;
if ( i==yy ) { printf("*"); b=1; }
if ( i==35 && b==0 ) { printf("|"); b=1; }
if ( b==0 ) printf(" "); }
printf("\n");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询