6

这是代码。

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;


}
4

8 回答 8

13

与数字一起使用时的>>运算符是右移,而不是赋值。你想要类似的东西

area = a * a * pi;

更新

您还需要使用浮点类型,否则您的答案将不是您所期望的。

float a;
float pi = 3.14f;
float area;
于 2011-01-15T15:54:50.520 回答
7

我没有足够的耐心来破译你奇怪的密码。刚刚怎么样area = a * a * pi

于 2011-01-15T15:54:22.850 回答
6

你的代码没有任何意义。

pi(和所有其他变量)需要是双精度或浮点数,...不是 int。int 只能包含整数。而且pi显然不是积分。

a *= a *= pi >> area;应该area = a * a * pi;

>>是移位,而不是对右侧的赋值
*=是乘法赋值,而不仅仅是乘法。即它类似于left=left*right

于 2011-01-15T15:56:23.707 回答
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;
}
于 2011-01-15T15:55:52.923 回答
2
int pi = 3.14;

错误的数据类型。将双精度值分配给int? 那是错误的。

写这个:

double pi = 3.14;

同样,也将其他数据类型更改double为。

于 2011-01-15T15:57:03.363 回答
2

圆的面积是 pi * r * r 因此你会想做;

a = a * a * pi

希望有帮助

他们都需要是花车。

于 2011-01-15T15:58:30.570 回答
1

因为您int对所有变量都使用 或整数。您想使用doubles 甚至floats。(doubles 更精确)。

于 2011-01-15T15:54:36.313 回答
1

您的所有变量都被声明为 int,它只是删除分配给它的任何小数部分。要使用浮点值,请改用 double。

此外,您的方程式几乎无法理解。不知道你想在那里做什么。

于 2011-01-15T15:54:48.337 回答