改正下面程序的错误,请不要修改类名、类中数据成员名称、成员函数名称。 class circle { private: double radius; public: void set_radius(double r) { radius = r; } double comp_area() { return 3.14 * r * r; } } int main() { circle c1; double x, a; cout << "本程序已经创建了一个Circle对象,请您输入该对象的数据成员半径radius的值:" << endl; cin >> x; c1.set_radius(); a = c1.comp_area(); cout << "该Circle对象的面积为:" << setiosflags(ios::fixed) << setprecision(2) << a << endl; //输出要求小数点后必须保留2位有效数字(四舍五入),不足补零 return 0; }
时间: 2023-06-25 19:02:13 浏览: 82
修改后的程序如下:
```
#include <iostream>
#include <iomanip> //需要用到setprecision和setiosflags函数
using namespace std;
class circle {
private:
double radius;
public:
void set_radius(double r) { //修改函数参数
radius = r;
}
double comp_area() {
return 3.14 * radius * radius; //修改变量名
}
};
int main() {
circle c1;
double x, a;
cout << "本程序已经创建了一个Circle对象,请您输入该对象的数据成员半径radius的值:" << endl;
cin >> x;
c1.set_radius(x); //修正函数调用的参数
a = c1.comp_area();
cout << "该Circle对象的面积为:" << setiosflags(ios::fixed) << setprecision(2) << a << endl;
return 0;
}
```
修改点:
1. `comp_area` 函数中变量名 `r` 修改为 `radius`。
2. `set_radius` 函数的参数列表中添加一个 `double r` 参数,用于接收用户输入的半径值。
3. 在 `main` 函数中调用 `set_radius` 函数时,将用户输入的半径值作为参数传递给 `set_radius` 函数。
4. 修正 `set_radius` 函数调用时缺少参数的错误。
5. 在输出面积时,使用 `setiosflags(ios::fixed)` 指定输出格式为定点数,使用 `setprecision(2)` 指定输出小数点后保留两位有效数字。
阅读全文