每次输入都获得0

问题描述 投票:-1回答:1
#include <iostream>
#include <cmath>
using namespace std;
int main() {

int n = 5;
float area = 0.0;
float totalarea = 0.0;
float dx = 1.0/n;

float x = 0.0;


cout << "number of rectangles?:";
cin >> n;
for (int i=1; i<=n; i++){
    area = (1/n) * pow(1.0 - pow(x,2.0),0.5) ;

    totalarea += area;
    x = x + dx;
}
cout << totalarea << endl;

return 0;
}

我试图用矩形估计四分之一圆的面积。当我输入1时,我得到1作为输出。当我输入一个2-6的整数时,我得到0作为输出。当我输入一个大于6的整数时,我得到“不是数字”作为输出。有人可以帮我修复我的代码。

c++
1个回答
0
投票

除了修复注释中提到的整数除法问题之外,还需要暂停设置dx,直到得到n的值。

#include <iostream>
#include <cmath>
using namespace std;
int main() {

    int n;
    float area = 0.0;
    float totalarea = 0.0;
    float dx;

    float x = 0.0;


    cout << "number of rectangles?:";
    cin >> n;
    dx = 1.0/n;
    for (int i=1; i<=n; i++){
        area = (1./n) * pow(1.0 - pow(x,2.0),0.5) ;

        totalarea += area;
        x = x + dx;
    }
    cout << totalarea << endl;

    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.