π/4=1-1/3+1/5-1/7+.....
求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
例如,程序运行后,输入0.0001,则程序输出3.1414。
请改正程序中的错误,使它能输出正确的结果。_______
注意:不要改动smain函数,不得增行或删行,也不得更改程序的结构!
include 〈 math.h 〉
include 〈 stdio.h 〉
float fun (float num)
{ int s ;
float;n,t,pi ;
t=1;pi=0;n=1;s=1;
/**********found**********/
while(t 〉=num)
{
pi = pi + t ;
n = n +2 ;
s=-s ;
/**********found**********/
t = s % n ;
}
pi=pi*4 ;
return pi ;
}
main()
{ float n1,n2;
printf("Enter a float number:");
scanf("%f", &n1);
n2=fun(n1);
printf("%6.4f\n",n2);
}
π/4=1-1/3+1/5-1/7+.....
求x的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:
例如,程序运行后,输入0.0001,则程序输出3.1414。
请改正程序中的错误,使它能输出正确的结果。_______
注意:不要改动smain函数,不得增行或删行,也不得更改程序的结构!
include 〈 math.h 〉
include 〈 stdio.h 〉
float fun (float num)
{ int s ;
float;n,t,pi ;
t=1;pi=0;n=1;s=1;
/**********found**********/
while(t 〉=num)
{
pi = pi + t ;
n = n +2 ;
s=-s ;
/**********found**********/
t = s % n ;
}
pi=pi*4 ;
return pi ;
}
main()
{ float n1,n2;
printf("Enter a float number:");
scanf("%f", &n1);
n2=fun(n1);
printf("%6.4f\n",n2);
}
正确答案:参考答案:(1)while(fabs(t)〉=num)(2)t=s/n; 详细解答:(1)题干中要求进行循环的条件是绝对值小于某范围,可以调用C语言提供的取绝对值函数fabs对t取绝对值。所以将“while(t 〉=num)”改为“while(fabs(t) 〉=num)”。(2)表达式s%n中,n是浮点型,而%运算符只能用于整数运算,且要进行的是除法运算而不是求余运算。所以,第二个标识下“t=s%n;”应该改为“t=s/n;”。