| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1767 人关注过本帖
标题:求sin的近似值,要求误差小于1e-6,就是累加项的绝对值小于1e-6就可以了 不 ...
只看楼主 加入收藏
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
结帖率:92.86%
收藏
已结贴  问题点数:10 回复次数:4 
求sin的近似值,要求误差小于1e-6,就是累加项的绝对值小于1e-6就可以了 不能用pow,大家帮我看看我的代码错哪了 跑不出来的 一直在
#include<stdio.h>
#include<math.h>
float jc(int a)
{
    int sum=1,i;
    for(i=1;i<=a;i++)
    {
        sum=sum*i;
        return sum;
    }
}
float cf(int a)
{
    int sum=a,i;
    for(i=1;i<=a;i++)
    {
        sum=sum*a;
        return sum;
    }
}
float qsin(float x)
{
    int flag=1,a=1;
    float sum=x;
    do
    {
        flag=-flag;
        sum=sum+flag*cf(2*a+1)/jc(2*a+1);
        a+=2;
    }while(fabs(flag*cf(2*a+1)/jc(2*a+1))>=1e-6);
    return sum;
}
int main()
{
    int n;
    float z;
    scanf("%d",&n);
    z=qsin(n);
    printf("sin(%d)=%f",n,z);
    return 0;
}
搜索更多相关主题的帖子: 小于 float int sum return 
2018-05-12 10:45
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-05-12 10:47
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
我的代码问题出在哪了
2018-05-12 10:47
ab1412
Rank: 7Rank: 7Rank: 7
来 自:M78星球
等 级:黑侠
威 望:4
帖 子:103
专家分:537
注 册:2018-3-15
收藏
得分:10 
程序代码:
#include<stdio.h>
double jc(double a)  //阶乘
{
    double sum=1;
    int i;
    for(i=1;i<=a;i++)
    {
        sum=sum*i; 
    }
    return sum;
}
double cf(double a,double b)  //乘方
{
    double sum=b;
    int i;
    for(i=1;i<a;i++)
    {
        sum=sum*b;
    } 
    return sum;
}
double qsin(double x)
{
    int flag=1,a=1;
    double sum=x;
    do
    {
        flag=-flag;
        sum=sum+flag*cf(2*a+1,x)/jc(2*a+1);
        a+=1;
    }
    while((cf(2*a+1,x)/jc(2*a+1))>=1e-6);
    return sum;
}
int main(void)
{
    double n;
    double z;
    scanf("%lf",&n);
    z=qsin(n);
    printf("sin(%lf)=%lf",n,z);
    return 0;
}


错误太多,我就不一一指正了,程序已经修改好了,自己看吧。
另外我也是数字媒体技术专业的Hhhh.

printf("萌新一枚,请多指教");
2018-05-12 11:58
一鑫
Rank: 2
等 级:论坛游民
帖 子:111
专家分:12
注 册:2018-4-12
收藏
得分:0 
回复 4楼 ab1412
厉害
2018-05-12 12:26
快速回复:求sin的近似值,要求误差小于1e-6,就是累加项的绝对值小于1e-6就可以 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020468 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved