c语言计算级数
❶ 编程求级数的程序怎么写c语言的
#include <stdio.h>
#include <math.h>
int main(void)
{
double f = 1;
double x, k, x2, power = 1;
int i = 2;
scanf("%lf", &x);
power += x;
k = x;
do {
x2 = power;
f *= i++;
x *= k;
power += x / f;
} while(fabs(power-x2) > 1e-8);
printf("%f", power);
}
/////////////////////////
你那个代码,1、pow函数可以不用自己写,你写的精度也不够;2、保存阶乘最好用double,不然要溢出。
修正了以上2点就没问题了,代码如下:
#include <stdio.h>
#include <math.h>
double f1(int n)
{
double s = 1;
int i;
for ( i=1; i<=n; i++)
s *= i;
return s;
}
main()
{
int x,i, n;
double ex = 1;
scanf("%d%d",&x,&n);
for ( i=1; i<=n; i++)
ex += pow(x, i) / f1(i);
printf("%lf %lf\n",ex, exp(x));
}
❷ C语言求级数
#include <stdio.h>
double fun(double x,int n)
{
double result = 1.0;
double item = 1.0;
int i;
for (i = 1; i <= n; i++)
{
item = item * x / i;
result += item;
}
return result;
}
int main()
{
double x;
int n;
scanf("%lf%d",&x,&n);
printf("%lf\n",fun(x,n));
}
❸ C语言级数求和
#include"stdio.h"/////////不知道是否正确,希望有帮助.
double x;
double jiecheng(double a){//介乘。
double i=0;
double r=1;
for(i=1;i<(a+1);i++)
r=i*r;
return r;
}
double pf(double a){
static p=0;
double r;
p++;
r=x*a/(jiecheng(a));
if(p%2==0)
return r*-1;
else
return r;
}
void main()
{
int i=1;
double r=0;
scanf("%lf",&x);
for(i=1;i<1000;i+=2)
r=r+pf(i);
printf("%.6lf\n",r);
}
❹ C语言求级数的问题
#include<stdio.h>
#include<math.h>
voidmain(){
inti;doublex,k=1,s=0;
scanf("%lf",&x);
for(i=0;abs(k/(i*2+1))>=1e-6;i++)
{
i==0?k*=x:k*=-x*x/i;
s+=k/(i*2+1);
}
printf("s(x)=%lf",s);
}
❺ C语言计算无穷级数
^
#include<stdio.h>
#include<math.h>
/*
数列求和来题。输入x,计算无穷级数。源
1+x-x^2/2!+x^3/3!-x^4/4!...
所有绝对值不小于0.0001。
要求最终结果保留四位小数。
*/
intmain()
{
doublesum=1;
doublex;
doubletemp=1;
doublei;
printf("PleaseTypeX! ");
scanf("%lf",&x);
for(i=1;fabs(temp)>=0.0001;i++)
{
temp=x*temp/i;
sum+=temp;
temp=-temp;
}
printf("%.4lf ",sum);
return0;
}
❻ c语言级数求和题
/*一个计算n个数的平均值的函数*/
float ave(float *num,int n)
{
float cache=0.0;
int i=0;
for(;i<n;i++)
{
cache=cache+num[i];//求数的总和
}
return(cache/n);//返回专平属均值
}
❼ C语言:求下列级数的和,怎么编程
代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
double s,x,t;
printf("Enter x(R: x>1)... x=");
if(scanf("%lf",&x)==1 && x>1.0){
for(t=s=1.0;(t/=x)>1.0E-6;s+=t);
printf("s(%f) = %f ",x,s);
}
else
printf("Input error, exit... ");
return 0;
}
❽ C语言中求级数和
你前面来写的那个式子就有问题自,怎么又7+8+9了?
从程序来看,最里面的循环是求每一个加数,例如N为5,那么就有5个加数,分5次循环求得这5个加数。由于第一个加数是1,所以循环中没有求第一个加数,而是直接从第二个加数开始求,这也就是你所问的t=1时,f=2,由于j从0循环到i(包含),也就是,也就是i+1个数相乘,例如i=1时,所求加数就是2*3
j就是一个循环控制变量,控制乘数的大小
外面一层循环就是将加数求和
❾ C语言 计算级数1/2+1/2*3....... +1/n(n+1)
#include <stdio.h>
void main()
{
int i,n;
float sum = 0; //sum赋初值0
printf(" please input a number n:");
scanf("%d",&n);
for (i = 1; i <= n; i++)
sum = 1.0/(i*(i+1))+sum; //利用for循环求sum,因为sum浮点型,所以分子用1.0
printf("sum=%.4f\n",sum); //输出sum,保留四位小数
}