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ではなく、doubleまたはfloatである必要があります。int には整数のみを含めることができます。そしてpi、明らかに不可欠ではありません。

a *= a *= pi >> area;する必要がありますarea = a * a * pi;

>>はビットシフトであり、右側への割り当てではなく、
*=乗算の割り当てであり、乗算だけではありません。すなわち、それはに似ていますleft=left*right

于 2011-01-15T15:56:23.707 に答える
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 に答える
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 に答える
1

intすべての変数に 、または整数を使用しているためです。doubles または sを使用したいfloat。( doubles の方が正確です)。

于 2011-01-15T15:54:36.313 に答える
1

すべての変数は int として宣言されます。これにより、変数に割り当てられた小数部分が削除されます。浮動小数点値を扱うには、代わりに double を使用してください。

また、あなたの方程式はほとんど理解できません。あなたがそこで何をしようとしているのかわからない。

于 2011-01-15T15:54:48.337 に答える