标题:求近似值 各位,帮我看看下面的程序要怎样修改才能达到目的
只看楼主
熊小孩
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-11-17
结帖率:0
 问题点数:0 回复次数:1 
求近似值 各位,帮我看看下面的程序要怎样修改才能达到目的

#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 n=0,flag=-1;
    long p=1;
    double power,item,sum;
    sum=0;
    while (fabs(item)>=e)
    {
        power = pow(x,n);
        p = fact(n);
        item = flag*power/p;
        sum = sum+item;
        n =n+2;
        flag = -flag;
    }
    return sum;
}
long fact (n)
{   
    int i;
    long result =1;
    for (i=2;i<=n;i++)
    {
        result*=i;
    }
    return result;
}
搜索更多相关主题的帖子: 近似 double flag item sum 
2017-11-17 15:14
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
程序代码:
#include <stdio.h>
#include <math.h>

double funcos(double e, double x);
long fact(int n);                 //函数声明
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 n = 0, flag = 1;   //第一项是正数,所以flag=1
    long p = 1;
    double power, item, sum;
    item = 999999;      //给item赋个初始值让while循环跑起来
    sum = 0;
    while (fabs(item) >= e)
    {
        power = pow(x, n);
        p = fact(n);
        item = flag*power / p;
        sum = sum + item;
        n = n + 2;
        flag = -flag;
    }
    return sum;
}
long fact(int n)      //函数声明n的类型呢?
{
    int i;
    long result = 1;
    for (i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

早知做人那么辛苦!  当初不应该下凡
2017-11-17 18:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482578-1-1.html




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

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