这是代码。
int a;
int pi = 3.14;
int area;
int main()
{
cout << "Input the radius of the circle ";
cin >> a;
a *= a *= pi >> area;
cout << "The area is " << area;
}
答案 0 :(得分:13)
>>
运算符与数字一起使用时是右移,而不是赋值。你想要像
area = a * a * pi;
更新
您还需要使用浮点类型,否则您的答案将不符合预期。
float a;
float pi = 3.14f;
float area;
答案 1 :(得分:7)
我没有足够的耐心来破译你的奇怪代码。仅area = a * a * pi
怎么样?
答案 2 :(得分:6)
您的代码没有任何意义。
pi
(以及所有其他变量)需要为double或float,...不是int。 int只能包含整数。 pi
显然不是不可或缺的。
a *= a *= pi >> area;
应为area = a * a * pi;
>>
是一个位移,而不是右侧的任务
*=
是多次分配而不仅仅是乘法。即它类似于left=left*right
答案 3 :(得分:2)
您的代码没有按我认为您希望它执行的操作。您没有使用>>
分配变量;这仅适用于流提取(和位移)。
此外,a *= a *= pi
可能不会按照您的想法行事。
此外,您需要浮点值,而不是int
。 “int”pi只有3个。
此外,您应该对流提取进行错误检查!
尝试:
int main()
{
const float pi = 3.14;
float a;
cout << "Input the radius of the circle ";
if (!(cin >> a)) {
cout << "Invalid radius!";
return 1;
}
float area = (a * a * pi);
cout << "The area is " << area;
}
答案 4 :(得分:2)
int pi = 3.14;
错误的数据类型。为int
分配双倍值?那是错的。
写下这个:
double pi = 3.14;
同样,将其他数据类型也更改为double
。
答案 5 :(得分:2)
圆圈区域是pi * r * r,因此您可以这样做;
a = a * a * pi
希望有所帮助
他们都需要漂浮。
答案 6 :(得分:1)
因为您对所有变量使用int
或整数。您想使用double
甚至float
。 (double
更精确)。
答案 7 :(得分:1)
所有变量都声明为int,它只删除分配给它的任何小数部分。要使用浮点值,请使用double。
另外,你的等式几乎难以理解。不确定你在那里做什么。