求教一道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个字符)
求大神帮忙写一下啊啊啊!!!
展开
 我来答
cdyzxy
2018-05-02 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3626万
展开全部

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");
  }
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式