C语言提高-第9讲: 函数的嵌套调用(编制sin函数表)

来源:互联网 发布:阿里云短信授权书 编辑:程序博客网 时间:2024/05/17 22:57

任务和代码:

/* *All rights reserved *文件名称:main.c *作者: Osseyda 完成日期:2017.10.13 *版本号:v2. * *问题描述:在main()函数中调用show_sin_table(min_angle, max_angle),显示角度值为min_angle到max_angle之间的所有角度(间隔为1度)的正弦值。要求不能用数学库函数,可以将项目“太乐了”中的mysin函数拷贝到这个程序中,用于计算sin值。*问题输出:例如show_sin_table(0, 90)可以显示出所有0到90度的正弦值。可以考虑以速查表格的形式*/#include <stdio.h>//下面加入常变量和自定义函数的声明void show_sin_table(int,int);double mysin(double);double myabs(double);const double pi=3.1415926;int main(){    show_sin_table(0, 90);    show_sin_table(135, 180);    return 0;}//下面定义show_sin_table()函数void show_sin_table(int fAngle,int tAngle){    int i,count=0;    printf("由%d度到%d度输出sin值的对应表(分三列):\n",fAngle,tAngle);    for(i=1;i<=3;i++)        printf("x\t\sin(x)\t\t");    printf("\n");    for(i=fAngle;i<=tAngle;i++){        printf("%d\t%.2f\t\t",i,mysin(i*pi/180));        count++;        if(count%3==0)            printf("\n");    }    printf("\n");    return 0;}//下面定义mysin函数double mysin(double x){    double sum=x,x_pow=x,item,fact=1;    int n=1,sign=1;     //定义变量时赋初值,已经将第一项考虑到累加和sum中    do{        fact=fact*(n+1)*(n+2);  //fact用于表示阶乘,在公式中作分母        x_pow*=x*x;             //x_pow是分子中用于表示阶乘,在公式中作分母        sign=-sign;             //确定即将要累加的这一项的符号        item =x_pow/fact*sign; //计算出要累加的项        sum+=item;              //将该项累加上去        n+=2;    }    while(myabs(item)>1e-5);    return sum;}double myabs(double x){    return ((x>=0)?x:-x);}

项目“太乐了”


运行结果:


知识点总结:

        函数的嵌套调用;数据的表类输出;sin的泰勒展开式


心得:

       在sin函数调用的时候,注意里面的参数是弧度制,否则就要出错啦~




阅读全文
0 0