#include<iostream>
#include<stdio.h>
using namespace std;
const float PI = 3.14;
class shape{
private:
int x;
int y;
virtual float GetArea() = 0;
};
class Rectangle : public shape{
public:
virtual float GetArea()
{
return length*width;
}
void set(int a,int b)
{
this->length = a;
this->width = b;
}
int length;
int width;
};
class Circle : public shape{
public:
void set(int r)
{
this->Circle_r = r;
}
virtual float GetArea()
{
return PI*Circle_r*Circle_r;
}
private:
int Circle_r;
};
class Square : public Rectangle{
public:
void set(int lenth1)
{
this->length1 = length1;
}
virtual float GetArea()
{
return length1^2;
}
int length1;
};
int main()
{
int a,b;
cin>>a>>b;
Rectangle s;
s.set(a,b);
cout<<s.GetArea()<<endl;
int r;
cin>>r;
Circle s1;
s1.set(r);
cout<<s1.GetArea();
int m;
cin>>m;
Circle s2;
s2.set(m);
cout<<s2.GetArea();
return 0;
system("pause");
}
輸出顯示不通過,理論圓半徑輸入10時,面積的輸出應為314,實際輸出為31478.5,求回復
uj5u.com熱心網友回復:
無圖無真相!uj5u.com熱心網友回復:
好像沒錯誤。你把代碼只留下int r;
cin>>r;
Circle s1;
s1.set(r);
cout<<s1.GetArea();
這段運行試試。 一段一段的分開運行除錯
uj5u.com熱心網友回復:
去除錯一下,看看為什么如果不太懂除錯,參考這個
https://edu.51cto.com/sd/c4099
uj5u.com熱心網友回復:
VS2015 C++環境,除錯
uj5u.com熱心網友回復:

是利用牛客網的在線編程測驗的,結果是這樣的
uj5u.com熱心網友回復:
利用VS編譯試了一下
最后正方形面積結果應該是溢位還是?不太懂錯誤在哪,求大佬解答
uj5u.com熱心網友回復:
Dev-C++ 5.11測驗結果

以上兩組測驗均無問題
樓主運行的環境是什么?
uj5u.com熱心網友回復:
懂了樓主的輸入方法是下面這種

因為,兩個圓面積輸出時并未設定符號隔開,導致314和78.5連在一起
變成31478.5
uj5u.com熱心網友回復:
謝謝大佬 解答,小新明白了;我嘗試構建正方形求面積,輸出應該是16,結果卻是int m;
cin >> m;
Square s2;
s2.set(m);
cout << s2.GetArea()<<endl;

沒有看懂,,,,???
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/25897.html
標籤:新手樂園
上一篇:這個程式為什么出現了段錯誤?
