问题 问答题

下列给定程序中,函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。

例如,程序运行后,输入0.0001,则程序输出3.1414。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdlib.h>

#include<math.h>

#include<sfdio.h>

float fun(float num)

int s;

float n,t,pi;

f=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;

void main()

float n1,n2;

system("CLS");

printf("Enter a float number:");

scanf("%f&n1);

n2=fun(n1);

printf("%6.4f\n",n2);

答案

参考答案:

while(fabs(t)>=num)

(2)t=s/n;

解析:

本题关键字有:while循环语句;求余运算符“%”和除法运算符“/”的区别。

[微分析]

(1)while语句用来累计计算P1的值,根据题意最后一项的绝对值小于给定参数循环终止,因此应当是while(fabs(t)>=num)。

(2)每一项的值存放在变量f中,每一项均为1或-1除以一个数,所以应使用除法运算符。

填空题
单项选择题