二、求PI的值。PI/4=1-1/3+1/5-1/7+1/9......直至最后一项的绝对值小于10的负17次方(即1E-7)。我看钱能的书上有不止一种算法,但我也是初学,所以在此只列出一种最简单的算法。 本文旨在掌握for循环与while循环的使用。1、用for循环实现: #include<iostream>#include<cmath> //由于要用到绝对值函数fabs(),故包含此头文件#include<iomanip> //格式化输出using namespace std;int main(){ int s=1;double n=1,m,t=0;for(m=1;fabs(n)>1e-7;m+=2,n=s/m) //m在循体内完成初始化{ t=t+n; s=-s;}cout<<setiosflags(ios::fixed)<<setprecision(8);cout<<"pi="<<4*t<<endl;return 0;} 2、用while循环实现,只需修改循环体即可: #include<iostream>#include<cmath> //由于要用到绝对值函数fabs(),故包含此头文件#include<iomanip> //格式化输出using namespace std;int main(){ int s=1;double n=1,m=1,t=0; //此处要对m进行初始化为1while(fabs(n)>1e-7){ t=t+n; s=-s; m+=2; n=s/m;}cout<<setiosflags(ios::fixed)<<setprecision(8);cout<<"pi="<<4*t<<endl;return 0;} 注意m不能声明为整型,若声明为整型,则必须在进行n=s/m时强制转换为double型:n=s/(double)m。否则,两个整型运算,其值n也只能为整型。

评论