用C语言在控制台中用"*"显示0^0~360^0的余弦函数cos(x)曲线(详解)

先附上代码及运行结果:

具体代码资源可下载:https://download.csdn.net/download/asdwzx142/11646582

C语言:

#include<stdio.h>
#include<math.h>
//在屏幕上用"*"显示0^0~360^0的余弦函数cos(x)曲线
void ShowCos();

void main(){
ShowCos();
}

void ShowCos(){
    double y;
    int x,m;
    for(y=1;y>=-1;y-=0.1){
        m=acos(y)*10;
        for(x=1;x<m;x++){
            printf(" ");
        }
        printf("*");
        for(;x<62-m;x++){
            printf(" ");
        }
        printf("*\n");
    }
}
        

运行结果:

详解:

输出余弦曲线在0^o~360^o的区间内,一行中要显示两个点,而对一般的显示器来说,只能按行输出,即:输出第一行信息后,只能向下一行输出,不能再返回到上一行。为了输出余弦函数的图像就必须在一行中输出两个"*"。

由于这个特性,在Dos控制台输出时每一行间距相等,而余弦函数图像是随着x轴方向改变,所以需要利用到反余弦函数的特性求得余弦函数从-1到1均匀变化时图像点距离y轴的距离。

定义:y为输出行数,m为需要输出的空格数,x为累计数

#include<stdio.h>  //引入基础头文件

#include<math.h>  //为了使用math.h头文件中的acos()反余弦函数

for(y=1;y>=-1;y-=0.1){   //由于acos()反余弦函数的定域义为[-1,1],如此-=0.1,总共输出21行。均匀变化的精度为0.1

m=acos(y)*10;                /*m为每行先需要输出多少的空格,空格数可以利用反余弦从1至-1对应的y值与余弦函数0至PI距离y轴相等求得。由于此时余弦函数的值域为0至Pi也就是0至3.1415926,为了使空格数既是整数又保证了其合理性所以*10使其输出空格数为0至31

for(x=1;x<m;x++){         //x记录输出空格数,并输出指定m个空格

printf(" ");                       //输出空格

}.

复习一下余弦,反余弦函数

https://baike.baidu.com/item/%E4%BD%99%E5%BC%A6/73670?fromtitle=%E4%BD%99%E5%BC%A6%E5%87%BD%E6%95%B0&fromid=9602078&fr=aladdin

https://baike.baidu.com/item/%E5%8F%8D%E4%BD%99%E5%BC%A6%E5%87%BD%E6%95%B0/2473336?fr=aladdin

图像:

余弦函数

反余弦函数:

printf("*");        //输出“*”

for(;x<62-m;x++){              /*注意此时for语句第一个;前代表使用x,其x值为m-1。利用余弦函数对称性,且Pi*10输出31个空格*2即总共62空格。观察余弦图,62减去后面与前面相同的空格数即为中间仍需要输出的空格数。*/

printf(" ");}             //输出相应的空格数

printf("*\n");             //再次输出“*”并换行输出下一行内容

}

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值