鱼C论坛

 找回密码
 立即注册
查看: 1663|回复: 2

C语言

[复制链接]
发表于 2020-3-29 16:51:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目要求:
使用格雷戈里公式求pi的近似值,要求精确到最后一项的绝对值小于10^-4。

大家觉得哪个对,为什么。感谢。

代码1:
#include<stdio.h>
#include<stdio.h>

int main()
{
    int flag = 1;
    double item = 1,PI = 0,e,denominator = 1;

    printf("请输入精度:");
    scanf("%lf",&e);
    while(fabs(item) >= e)
    {
        item = flag * (1/denominator);                //两句中的这一行代码换了位置
        PI += item;
        denominator += 2;
        flag = -flag;
    }
    PI = PI * 4;
    printf("PI的值为%.4f",PI);
}

代码二:

#include<stdio.h>
#include<stdio.h>

int main()
{
    int flag = 1;
    double item = 1,PI = 0,e,denominator = 1;

    printf("请输入精度:");
    scanf("%lf",&e);
    while(fabs(item) >= e)
    {
        PI += item;
        denominator += 2;
        flag = -flag;
        item = flag * (1/denominator);                //两句中的这一行代码换了位置
    }
    PI = PI * 4;
    printf("PI的值为%.4f",PI);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-29 17:18:37 | 显示全部楼层
代码2,因为pi的求法中第一项就是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 17:29:21 | 显示全部楼层
本帖最后由 墨羽岚 于 2020-3-29 17:37 编辑

都不对
你为啥两个都调用了两次stdio.h库函数?第二个#应该是math.h
还有变量名称尽量短小简洁,不然容易打错
最后int main()要返回一个值
更正后的话楼上就是对的
#include<stdio.h>
#include<math.h>

int main()
{
        double PI=1.0,i=3.0;
        int k=-1;
        do
        {
                PI+=k/i;
                i+=2;
                k=-k;
        }while(fabs(k/i)>=1e-4);
        PI=PI*4;
        printf("%.6f",PI);
        return 0;
}
采用do……while还是while随个人喜好来(我做的题里面答案大多是do……while)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-15 17:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表