点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

KK 3年前 回复TA
#include<stdio.h>
#include<math.h>

double fact(int n)
{
    if(n==1) //当n=1是,递归法到尽头,依次返回函数值。
    {
        return 1.0; 
    }
    return n*fact(n-1);
}

double mypow(double x,int n)
{
    double e=1.0;
    if(n==1)
    {
        return x;
    }
    for(int i=0;i<n;i++)
    {
        e*=x;
    }
    return e;
}

int main()
{
    int i,n;
    double sum=0.0,x;
    scanf("%lf%d",&x,&n);
	for(i=1;i<=n;i++)
	{
	    sum+=pow(-1,i-1)*mypow(x,i)/fact(i);
	}
	printf("%.4lf",sum);
	return 0;
}
上单皇阿玛 4年前 回复TA
@C语言云玩家 int fact(int n)改成int fact(double n)就可以了,我也是跟你一样的情况
上单皇阿玛 4年前 回复TA
#include<stdio.h>
#include<math.h>
double fact(double n)

{
	if(n==0||n==1)
	{
		return 1;
	}
	else return n*fact(n-1);
} 
double mypow(double x,int n)
{
	double i,m;
	m=pow(x,n);
	return m; 
}
int main()
{
	double  x,M,n,i,s;
	scanf("%lf%lf",&x,&n);
	double sum=0;
	for(i=1;i<=n;i++)
	{
		s=(pow(-1,i-1))*(mypow(x,i)/fact(i));
		sum+=s;
	}
	printf("%.4lf",sum);

	
}
C语言云玩家 4年前 回复TA
@C语言云玩家 输出答案和标准答案一样
C语言云玩家 4年前 回复TA
为啥我这样子答案错误50%
#include<stdio.h>
#include<math.h>
int fact(int n)
{
    int ji = 1;
    if (n <= 0)
    {
        return 1;
    }
    else {
        for (int i = 1; i <= n; i++)
        {
            ji *= i;
        }
        return ji;
    }
}
int main()
{
    int n;
    float x;
    double sum = 0;
    scanf("%f", &x);
    scanf_("%d", &n);
    for (int j = 1; j <= n; j++)
        sum += pow((-1), (j - 1)) * pow(x, j) / fact(j);
    printf("%.4lf", sum);

    return 0;
}