| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1466 人关注过本帖
标题:请大佬指导,计算题
只看楼主 加入收藏
秃头预备军
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-3-11
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
请大佬指导,计算题
#include <stdio.h>
#include <math.h>

double funcos( double e, double x );

int main()
{   
    double e, x;

    scanf("%lf %lf", &e, &x);
    printf("cos(%.2f) = %.6f\n", x, funcos(e, x));
   
    return 0;
}

double funcos( double e, double x )
{
    int numerator,denominator,flag,i;
    double item,sum;
    i=1;
    flag=-1.0;
    denominator=2;
    numerator=x*x;
    sum=0;
    do
    {
        item=flag*numerator/denominator;
        sum=sum+item;
        numerator=numerator*x*x;
        denominator=denominator*(denominator+1)*(denominator+2);
        flag=-flag;
    }while(fabs(item)>=e);
    return sum;
}//输入0.01 -3.14 为什么得不到-0.999899
搜索更多相关主题的帖子: 计算 flag item double sum 
2022-03-11 08:51
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1507
专家分:9241
注 册:2010-3-16
收藏
得分:7 
item=flag*numerator/denominator;
参与运算的3个变量都是整型,结果也是整型
2022-03-11 10:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:7 
下次直接把题目贴出来,你那个“3.14”我猜不出是 角度 还是 弧度,在这道题中PI是不是以3.14计算

程序代码:
#include <stdio.h>

const double pi = 3.14159265358979323846;

// cos(x) = x^0/0! - x^2/2! + x^4/4! - x^6/6! + ... + (-1)^n*x^2n/(2n)!
double mycos( double x, double precision )
{
    double result = 1;

    double item = 1;
    for( int i=1; item>=precision; ++i )
    {
        item *= x*x/(2*i-1)/(2*i);
        result += (1-i%2*2)*item;
    }

    return result;
}

int main( void )
{   
    double cos_0 = mycos( 0 * pi/180, 0.000001 );
    printf( "cos(0angle) = %f, should be 1.000000\n", cos_0 );

    double cos_30 = mycos( 30 * pi/180, 0.000001 );
    printf( "cos(30angle) = %f, should be 0.866025\n", cos_30 );

    double cos_45 = mycos( 45 * pi/180, 0.000001 );
    printf( "cos(45angle) = %f, should be 0.707107\n", cos_45 );

    double cos_60 = mycos( 60 * pi/180, 0.000001 );
    printf( "cos(60angle) = %f, should be 0.500000\n", cos_60 );

    double cos_90 = mycos( 90 * pi/180, 0.000001 );
    printf( "cos(90angle) = %f, should be 0.000000\n", cos_90 );

    return 0;
}
2022-03-11 13:08
zzs3904
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:19
注 册:2022-3-4
收藏
得分:7 
2022-03-13 11:48
czw2011
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2022-3-26
收藏
得分:0 
精度问题
2022-03-26 16:55
快速回复:请大佬指导,计算题
数据加载中...
 
   



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

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