我这程序不知道为什么执行了好久
#include <stdio.h>#include <math.h>
int main()
{
double count;
double fenzi=1,fenmu=1,sum=0;
while(1)
{
count=fenzi/fenmu;
printf("%.8lf",count);
if(fabs(count)<0.00000001)
break;
sum=sum+count;
if(fenmu>0){
fenmu+=2;
fenmu=-fenmu;
}
else{
fenmu-=2;
fenmu=-fenmu;
}
}
sum=sum*4;
printf("%.7lf",sum);
} 本帖最后由 jhq999 于 2021-8-30 15:39 编辑
count=fenzi/fenmu;循环体得运行50,000,000次才能让fabs(count)<0.00000001
(1 ÷ 0.00000001 =100,000,000)每次+2就除以2等于50,000,000 // 这个程序到我这里不是运行好久,是在控制台一直显示数字。
// 这是因为while循环,没有办法退出。
#include <stdio.h>
#include <math.h>
int main()
{
double count;
double fenzi=1,fenmu=1,sum=0;
while(1)
{
count=fenzi/fenmu;
printf("%.8lf",count);
// 这个语句一直判断为否,无法break,无法退出语句。
if(fabs(count)<0.00000001)
break;
sum=sum+count;
if(fenmu>0){
fenmu+=2;
fenmu=-fenmu;
}
else{
fenmu-=2;
fenmu=-fenmu;
}
}
sum=sum*4;
printf("%.7lf",sum);
} 本帖最后由 jhq999 于 2021-8-30 15:52 编辑
控制台输出太占资源.你把//printf("%.8lf",count);这个去掉试试,不就是求派吗?
#include <math.h>
int main()
{
double count;
double fenzi=1,fenmu=1,sum=0;
while(1)
{
count=fenzi/fenmu;
//printf("%.8lf",count);//你把这个去掉试试
if(fabs(count)<0.00000001)
break;
sum=sum+count;
if(fenmu>0){
fenmu+=2;
fenmu=-fenmu;
}
else{
fenmu-=2;
fenmu=-fenmu;
}
}
sum=sum*4;
printf("%.7lf",sum);
}
页:
[1]