提高篇第6-10课作业第三题

本文介绍了一个使用C语言实现的自定义sin值表程序。通过定义mysin函数利用泰勒级数展开来计算任意角度的正弦值,并创建了一个show_sin_table函数用于打印特定角度范围内的sin值表格。
#include <stdio.h>
#include <stdlib.h>
#define pi 3.1415926


//第七题
double mysin(double x);
double myabs(double x);
void show_sin_table(int,int);
int main( )
{
    show_sin_table(45,90);
    show_sin_table(135,180);
    return 0;
}
//定义show_sin_table函数。功能是打印三角函数对应表格
void show_sin_table(int min_angle,int max_angle)
{
    int i;//定义表格的横坐标
    int j;//定义表格的纵坐标,对应的角度为i*10+j
    double angle;
    printf("%d°到%d°的sin值表格如下:\n",min_angle,max_angle);
    for(i=min_angle/10;i<=max_angle/10;i++)
    {
        printf("%6d",i);//保持和三角函数值的打印对齐
    }
    printf("\n");
    for(j=0;j<=9;j++)
    {
        printf("%3d ",j);
        for(i=min_angle/10;i<=max_angle/10;i++)
        {
            angle=(i*10+j);
            if(angle>=min_angle&&angle<=max_angle)   //只打印在角度范围内的sin值
                printf("%4.3lf ",mysin(angle*pi/180));
            else
                printf("      ");//打印空格占位置
        }
        printf("\n");
    }
}
//下面定义mysin函数,输入弧度值,根据泰勒展开求出sin值
double mysin(double x)
{
    int i=3,n=-1;
    double t,x_pow=x;
    double sin=x;
    double fact=1;
    do
    {
        fact*=i*(i-1);
        x_pow=x_pow*x*x;
        t=x_pow*n/fact;
        sin+=t;
        i+=2;
        n=-n;
    }while(myabs(t)>=1e-5);
    return sin;
}

//myabs函数,求绝对值函数

double myabs(double x)
{
    double r;
    if(x>=0)
        r=x;
    else
        r=-x;
    return r;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值