本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
输入格式: 输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf("%le", &eps);输出格式: 在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值 输入样例:
1E-5输出样例:
PI = 3.14158答案:
#include<stdio.h> double fact(int i); double odd_multiple(int h); int main() { double eps,j=1,k=1,sum=1,PI; int i=1; scanf("%le",&eps); while(j/k>=eps){ j=fact(i); k=odd_multiple(i+1); sum=sum+j/k; i++; } PI=2*sum; printf("PI = %.5lf",PI); return 0; } double fact(int i) { double j=1; for(;i>1;i--) { j=j*i; } return (j); } double odd_multiple(int h) { double k=1; for(;h>1;h--){ k=k*(2*h-1); } return (k); }