c语言-编写程序:根据公式 输出 π的值。

问题描述

编写程序:根据公式 输出 π的值。

根据公式,π/4=1-1/3+1/5-1/7+.....,直到最后一项小于1e-6。
#include
#include
main()
{
double pi=0,n=1,i=0;

while(fabs(n)>=1e-6)
{
    n=(pow(-1,i))*1/(2*i+1);
    pi=pi+n;
    i++;
}
pi=pi*4;
printf("pi=%10.8f",pi);
return 0;

}

#include
#include
main()
{
int sign=1;
double pi=0,n=1,term=1;

while(fabs(term)>=1e-6)
{
    pi=pi+term;
    n=n+2;
    sign=-sign;
    term=sign/n;

}
pi=pi*4;
printf("%10.8f",pi);
return 0;

}

第二段代码结果没错,第一段代码的结果为什么第六位小数不一样。

解决方案

第一个是相当于比较完了再累加
第二个是相当于累加完了再比较
最后差了一个值

第一个函数改成下面就和第二个一样了
main()
{
double pi=0,n=1,i=0;
n = (pow(-1, i)) * 1 / (2 * i + 1);
while (fabs(n) >= 1e-6)
{
pi = pi + n;
i++;
n = (pow(-1, i)) * 1 / (2 * i + 1);
}
pi=pi*4;
printf("pi=%10.8f",pi);
return 0;
}

解决方案二:

应该是浮点数的特殊存储导致的,所以你可以去看看浮点数是如何在没错中表示的,就明白了

解决方案三:

pow好像只能用于double类型的。
http://c.biancheng.net/cpp/html/189.html

时间: 2025-01-17 18:31:40

c语言-编写程序:根据公式 输出 π的值。的相关文章

用C语言编写程序实现Zip或者Rar无损压缩算法

用C语言编写程序实现Zip或者Rar无损压缩算法 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *HUFF.C Huffman encode for multimedia application 8*8 pixel Ver 3 * * * *Ver 1: Complied in Borland Turbo C++ 3.0 * *Ver 2: Complied in Microsoft Visual

c语言-C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释

问题描述 C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释 #includeint change(int *data){ return (*data)++;}main(){ int data=123; change(&data); printf(""%ddata); data=change(&data); printf(""%d""data); printf(""n"");}V

数据库-超市收银管理系统用java语言编写程序

问题描述 超市收银管理系统用java语言编写程序 超市收银管理系统 要求:使用图形用户界面. 由收银员输入顾客的会员卡卡号(若有卡).所购商品的货号等.从数据库中取出有关价格信息,再把这些信息返回给收银台.同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询. 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息.如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠 解决方案 参考:http://down.51cto.

cg编程 立体剖切 裁剪-如何用Cg语言编写程序实现剖切

问题描述 如何用Cg语言编写程序实现剖切 用Cg语言编程实现立体剖切,剖切可以是用一个平面切长方体:也可以是在场景中抠出一个长方体,场景中长方体部分被移除或者抠去,留下一个长方体的区域.

用Java语言编写程序,在CSP产生证书请求,生成证书之后,如何生成其对应的密钥对pfx文件,多谢各位专家:)

问题描述 用Java语言编写程序,在CSP产生证书请求,生成证书之后,如何生成其对应的密钥对pfx文件,多谢各位专家:) 解决方案 解决方案二:没做过..关注解决方案三:没有遇到过这个问题,我也想了解.解决方案四:帮顶..解决方案五:数据加密技术有着悠久的历史,技术的成熟已经是毋庸质疑的.采用数据加密技术可以将敏感数据进行加密,防止被未授权人员窃听和访问,这是数据加密技术为电子政务系统带来的最基本的好处.另外,利用数据加密技术,可以在网络上建立一种安全的数据传输通道,保证敏感数据从发出到接收在安

输出-求用c语言编写这么一段程序

问题描述 求用c语言编写这么一段程序 1.用随机产生n个整数,赋给a数组 2.从小到大排序 3.计算最小数的阶乘 4.输出数组内容 解决方案 这个不难,就是先随机n个数放到数组再对数组排序,然后对数组第一个数求阶乘输出,最后输出整个排序过的数组,一步步来很简单 解决方案二: 参考代码段:https://github.com/707wk/Senior-middle-school/blob/master/Filling%20in%20the%20gaps.c 解决方案三: 你需要什么样的排序方式?最

求解决-按照例子不能正常输出,程序不知道那里出错误了,请大神们指出来,我好改正,请用c语言编写

问题描述 按照例子不能正常输出,程序不知道那里出错误了,请大神们指出来,我好改正,请用c语言编写 #include #include /**本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素. 输入格式: 输入在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开. 输出格式: 在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格. 输入样例: 4 10 8 1 2 输出样例: 2 1 8 10 **

求解决-请用c语言编写此程序,重点在怎么把None输出,求指教

问题描述 请用c语言编写此程序,重点在怎么把None输出,求指教 /**输出21世纪中截止某个年份以来的所有闰年年份.注意:闰年的判别条件是该年年份能被4整除但不能被100整除.或者能被400整除. 输入格式: 输入在一行中给出21世纪的某个截止年份. 输出格式: 逐行输出满足条件的所有闰年年份,即每个年份占一行.输入若非21世纪的年份则输出"Invalid year!".若不存在任何闰年,则输出"None". 输入样例1: 2048 输出样例1: 2004 200

c语言-C语言编写一个输出的函数

问题描述 C语言编写一个输出的函数 编写一个函数,输出数组,要求通过参数指定每行输出的元素个数,以 及每个元素占有的列数. 假设自己定义一个参数为x 那么打印的时候printf(""%xd"")怎么用一个参数来满足每次打印时候 元素所占列数的不同呢 解决方案 #include <stdio.h>void display(int data[] int n int cols int w){ for (int i = 0; i < n; i++) { p