所求问题是用近似矩形的方法来求圆的面积 代码如下:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{double area(double r,int n);
double r;
int n;
cout<<"please input r and n:";
cin>>r>>n;
cout<<"S="<<area(r,n)*4<<endl;
return 0;
}
double area(double a,int b)
{double r,k=0;
long i=1,n;
do
{k=k+r/n*sqrt(r*r-(r/n*(i-0.5))*(r/n*(i-0.5)));
i=i+1;}
while (i<=n);
return k;
}
k=k+r/n*sqrt(r*r-(r/n*(i-0.5))*(r/n*(i-0.5)));
公式没写对。
n变量没赋值。
double area(double a,int b)函数中,又定义了临时变量n,且没有赋初始值
那么在do循环中,n会默认为0,由于除数为0,就出现NAN了
根据你的代码,应该将area函数的第二个参数名改为n,然后把area函数中的临时变量n删除。
也许对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y