我使用以下代码打印出代码,但我没有显示圆圈的正确区域。它显示-215487854145作为圆圈的区域..
请帮帮我 代码下面的代码:
请帮助我,因为我是这门语言的新手,我想我一切都做对了
#include <iostream>
using namespace std;
int main()
{
int a, r;
a = 3.14 * r * r ;
cout << "enter Radius";
cin >> r;
cout << "area of circle is";
cout << a;
return 0;
}
答案 0 :(得分:4)
两个问题。
您正在使用{em> unitialised 值a
计算r
。程序行为 undefined 。在cin >> r;
语句后移动它。
在int
中工作可能会导致溢出问题。 C ++中int
的最大可能值可以小到32767.请改用double
,并改进PI值。请注意,3.14 * r * r
的类型无论如何都是double
,您目前正在强制转换为int
。
对于PI本身,它不包含在C ++标准库中。考虑
constexpr double pi = 3.14159265358979323846264338328;
如果您正在使用数学库,请从数学库中选择一个。
答案 1 :(得分:2)
您在读取值之前在计算中使用了r
。 之后将其移动到。
cin >> r;
a = 3.14 * r * r ;
答案 2 :(得分:1)
与数学不同,
a = 3.14 * r * r ;
没有定义a
和r
之间的关系(它不是一个等式)。
相反,它表示&#34;将a
的当前值替换为r
&#34;当前值的平方的3.14倍。
由于您尚未给出r
值,因此结果未定义。
您需要稍微移动线条,以便不使用尚不存在的值 你也不应该使用整数,而是使用浮点数。
double r;
cout << "enter Radius";
cin >> r;
double a = 3.14 * r * r ;
cout << "area of circle is " << a;
答案 3 :(得分:1)
#include <iostream>
using namespace std;
int main()
{
int a, r;
// your r was not initialized when you use it.
a = 3.14 * r * r ;
cout << "enter Radius";
cin >> r;
cout << "area of circle is";
cout << a;
return 0;
}
正确答案:
#include <iostream>
using namespace std;
int main()
{
int a, r;
cout << "enter Radius";
cin >> r;
//after r being initialized.
a = 3.14 * r * r;
cout << "area of circle is";
cout << a;
return 0;
}