C++编程问题:求圆周率PI: PI⼀4 = 1- 1⼀3 + 1⼀5 -1⼀7 +.....求大神帮忙看看我的程序有什么问题

#include<iostream>using namespace std;int YuanZhou(int);int main(){ int n; double temp,sum=0; cout<<"please input an number: "<<endl; cin>>n; for(int i=1;i<=n;i++) { if(i%2==0) { temp=(-1/YuanZhou(i)); }else { temp=(1/YuanZhou(i)); } sum+=temp; } cout<<4*sum<<endl; return 0;}int YuanZhou(int index){ if(index<0) { return -1; }else { return (2*index-1); }}
2026年09月27日 10:50
有3个网友回答
网友(1):

if(i%2==0)
{
temp=(-1/YuanZhou(i));
}else
{
temp=(1/YuanZhou(i));
}
sum
改成
if(i%2==0)
{
temp=(-1.0/YuanZhou(i));
}else
{
temp=(1.0/YuanZhou(i));
}
sum

两个int型相除得到的结果会自动变成int型(也就是小数部分被砍掉)

网友(2):

你先测试一下声明一个double类型的变量然后让他等于1/2看结果,在测试1.0/2看结果分别有什么不一样就知道了

网友(3):

if(i%2==0)
{
temp=(-1/YuanZhou(i));
}else
{
temp=(1/YuanZhou(i));
}

这里除法两边都是Int,把其中一个转换为double