-10

私は C++ のバックグラウンドを持つ非常に経験豊富な Java プログラマーですが、プログラミング クラスの 1 つで C を使い始めたばかりで、夢中になっています。これが最初の課題です。球の体積または表面積を計算することになっています。問題は、ユーザーが値を入力しても、「半径」がゼロに等しいことです。「モード」はうまく機能しますが、奇妙に思えます。コードは次のとおりです。

#include <stdio.h>
#define PI 3.14

int main()
{
    float radius; 
    int mode;

    printf("\nPlease enter a non-negative radius of a sphere: ");
    scanf("%f", &radius);

    printf("Please enter 1 for volume, 2 for area: ");
    scanf("%d", &mode);

    if (radius = 0)
    {
        printf("\n\nPlease enter a positive radius, instead of %f.", radius);
    }
    else
    {
        float area = 4 * PI * radius * radius;
        float volume = (4.0f / 2.0f) * PI * radius * radius * radius;
        float result = 0;

        if(mode == 1)
        {
            printf("\n\nYou are computing volume."); 
            result = volume;
        }
        else
        {
            printf("\n\nYou are computing area.");                              
            result = area;
        }

        printf("\n\nThe result is %2f", result); 
    }

    fflush(stdin);
    getchar();

    return 0; 
}

半径が正しく保存されていない理由はありますか? 参考までに、このコードのほとんどは事前に作成されています。私はただエラーを見つけることになっています。

4

3 に答える 3

5

if (radius = 0)する必要がありますif (radius == 0)

于 2013-08-28T06:08:19.963 に答える
4

これ:

#define PI=3.14

これでなければなりません:

#define PI 3.14

ifまた、比較で割り当てがあります: if (radius = 0)、する必要がありますif (radius == 0)。また、これを比較したり、好きになったりしてはいけませんfloatdouble

于 2013-08-28T06:09:08.397 に答える