我的代码存在一些问题。
我可以对半径的矢量进行排序并打印它们,但是它会对数字进行四舍五入并切断小数,我不确定如何修复它。
我遇到的另一个问题是尝试显示其旁边每个半径的区域,我无法正确调用类功能“区域”以显示相应半径旁边的区域。
我道歉,我是C ++的新手,我尽力解释我的问题。
我知道我的代码有点简陋,所以任何指针也会受到赞赏。此外,任何有关打印矢量和获得显示区域的帮助也将受到赞赏。感谢。
这是课程部分:
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
class Circle {
private:
double radius; // Radius of circle
public:
// Default constructor
Circle() {
radius = 0.0;
}
// Set the radius of the circle
void setRadius(double r) {
radius = r;
}
// Get the radius of the circle
double getRadius() {
return radius;
}
// Calculate the area of the circle using current radius
double area() {
return(3.1416 * radius * radius);
}
};
void printVector(vector<int>);
void bubbleSort(vector<int> &);
这是主要的:
int main(int argc, char** argv) {
cout << "Sorted Vector of Circles" << endl;
cout << "------------------------" << endl;
const int SIZE = 10;
Circle circle;
vector<int> circles;
Circle c1;
c1.setRadius(2.5);
circles.push_back(c1.getRadius());
Circle c2;
c2.setRadius(3.5);
circles.push_back(c2.getRadius());
Circle c3;
c3.setRadius(1.0);
circles.push_back(c3.getRadius());
Circle c4;
c4.setRadius(5.5);
circles.push_back(c4.getRadius());
Circle c5;
c5.setRadius(4.8);
circles.push_back(c5.getRadius());
Circle c6;
c6.setRadius(6.0);
circles.push_back(c6.getRadius());
Circle c7;
c7.setRadius(2.75);
circles.push_back(c7.getRadius());
Circle c8;
c8.setRadius(10);
circles.push_back(c8.getRadius());
Circle c9;
c9.setRadius(0.5);
circles.push_back(c9.getRadius());
Circle c10;
c10.setRadius(9.5);
circles.push_back(c10.getRadius());
bubbleSort(circles);
printVector(circles);
return 0;
}
排序功能:
void bubbleSort(vector<int> &radii){
int temp;
bool swap;
do {
swap = false;
for(int count = 0;count < radii.size()-1; count++){
if (radii[count] > radii[count+1]) {
temp = radii[count];
radii[count] = radii[count + 1.];
radii[count+1] = temp;
swap = true;
}
}
} while (swap);
}
打印功能:
void printVector(vector<int> radii) {
cout << "Radius" << endl;
cout << "" << endl;
for (int count = 0; count < radii.size(); count++) {
cout << setw(2) << radii[count] << setprecision(2) << " " <<
radii[count.area()] << " "; // main issue is with this section of code
cout << endl;
}
}
答案 0 :(得分:2)
使用onPostExecute()
代替std::vector<double>
没有任何名为std::vector<int>
的内容。 count.area()
是count
变量而不是integer
如果要打印该区域,则必须将另一个矢量(即应首先创建一个)传递给打印函数。