c语言问题编写程序:根据公式 ,输出 π的值。 要求: (1)变量π为单精度类型,n为整型; (2)计算当n的取值分别为20,50 ,100,200时的π值,说明什么问题? (3)修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4 为止。 (4)对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。
2019-04-13
c语言问题
编写程序:根据公式 ,输出 π的值。
要求:
(1)变量π为单精度类型,n为整型;
(2)计算当n的取值分别为20,50 ,100,200时的π值,说明什么问题?
(3)修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4 为止。
(4)对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。
优质解答
#include "stdio.h"
#include "math.h"
float fun(int n)
{
int i;
float PI=0;
for(i=1;i<=n;i++)
{
PI+=4.0*((1.0/(2.0*i-1))*pow(-1,i+1));
}
return PI;
}
void main()
{
int i=1;
float PI=0;
printf("n=20,pi=%f",fun(20));
printf("n=50,pi=%f",fun(50));
printf("n=100,pi=%f",fun(100));
printf("n=200,pi=%f",fun(200));
while(1.0/(2.0*i-1)>10e-4)
{
PI+=4.0*((1.0/(2.0*i-1))*pow(-1,i+1));
i++;
}
printf("pi=%f,n=%d",PI,i);
}
#include "stdio.h"
#include "math.h"
float fun(int n)
{
int i;
float PI=0;
for(i=1;i<=n;i++)
{
PI+=4.0*((1.0/(2.0*i-1))*pow(-1,i+1));
}
return PI;
}
void main()
{
int i=1;
float PI=0;
printf("n=20,pi=%f",fun(20));
printf("n=50,pi=%f",fun(50));
printf("n=100,pi=%f",fun(100));
printf("n=200,pi=%f",fun(200));
while(1.0/(2.0*i-1)>10e-4)
{
PI+=4.0*((1.0/(2.0*i-1))*pow(-1,i+1));
i++;
}
printf("pi=%f,n=%d",PI,i);
}