c语言循环结构?

我自己写的思路哪里错了啊... 我自己写的思路哪里错了啊 展开
 我来答
arongustc
科技发烧友

2020-11-28 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5891万
展开全部
这个错误你应该单步分析一下,看看每个变量每步怎么变
以第一项为例,公式要求它等于2 !/3, 但是n=2时,你的fz根本没有变化,还是1,显然错误
而且,你这个中间变量j也毫无意义,你直接用n好了
循环体变为
fz = fz * n;
fm = fm * (2 * n -1);
你那些if 语句都是无用功
更多追问追答
追问

纠正下题目第二项是1!/3

,所以fz=fz*(n-1)

我现在修改了,但是数值稍稍大于了输出的e,我猜测应该是因为这个循环是pi*2大于e才输出,前一次循环的pi值才该是正确的,但是小于e,又进行一次循环,导致pi被多加了一次,不知道是不是。

但是我不知道该怎么免去这次循环。

追答
把pi * 2 <e从循环语句中拿出来,你标注那块写成
if(pi + fz/fm < e/2) {
pi += fz/fm;
}else{
break;

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式