鱼C论坛

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

C语言

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

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

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

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

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

代码1:

  1. #include<stdio.h>
  2. #include<stdio.h>

  3. int main()
  4. {
  5.     int flag = 1;
  6.     double item = 1,PI = 0,e,denominator = 1;

  7.     printf("请输入精度:");
  8.     scanf("%lf",&e);
  9.     while(fabs(item) >= e)
  10.     {
  11.         item = flag * (1/denominator);                //两句中的这一行代码换了位置
  12.         PI += item;
  13.         denominator += 2;
  14.         flag = -flag;
  15.     }
  16.     PI = PI * 4;
  17.     printf("PI的值为%.4f",PI);
  18. }
复制代码


代码二:

#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);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-29 17:18:37 | 显示全部楼层
代码2,因为pi的求法中第一项就是1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

  3. int main()
  4. {
  5.         double PI=1.0,i=3.0;
  6.         int k=-1;
  7.         do
  8.         {
  9.                 PI+=k/i;
  10.                 i+=2;
  11.                 k=-k;
  12.         }while(fabs(k/i)>=1e-4);
  13.         PI=PI*4;
  14.         printf("%.6f",PI);
  15.         return 0;
  16. }
复制代码

采用do……while还是while随个人喜好来(我做的题里面答案大多是do……while)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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