C语言,多项式乘积:计算2/1*2/3*4/3*4/5*6/5*6/7…前n项(n为偶数)的值,n从键盘输入,结果保留三位小数

如题所述

#include <stdio.h>
double fun(int n) {
double rator = 2,nator = 1,mul = 1;
double delta,i = 1;
while(i <= n) {
delta = rator/nator;//2/1*2/3*4/3*4/5*6/5*6/7
printf("rator = %.2lf,nator = %.2lf\n",rator,nator);
mul *= delta;
if((int)i%2) nator += 2;
else rator += 2;
++i;
}
return mul;
}

int main() {
int n,T;
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
printf("n = %d,mul = %.3lf\n",n,fun(n));
}
return 0;
}

// fun(n)函数内的printf()函数是测试用的,请删除之。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-07
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(){
float n=1.0;
float s=1;
float i=1.0;
float pi=0;
while(fabs(i)>=1e-6){
pi+=i;
s=-s;
n=n+2;
i=s/n;
}
pi=pi*4;
printf("pi的近似值为%.3f\n",pi);
return 0;
}
第2个回答  2017-04-09
檬地心引力八新上半场囱
第3个回答  2017-04-09
#include<stdio.h>
int main()
{int i,n;
double s=1;
scanf("%d",&n);
for(i=2;i<=n+n;i+=2)
s*=1+1.0/(i*i-1);
printf("%.3lf\n",s);
return 0;
}
相似回答