c - 为什么用户输入的变量结果是 0 - C?

标签 c variables zero

我是一位经验丰富的 Java 程序员,具有 C++ 背景,但我刚刚在我的一个编程类(class)中开始使用 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; 
}

知道为什么半径没有正确存储吗?仅供引用 - 大部分代码是预先编写的。我只是应该找到错误。

最佳答案

if (radius = 0) 应该是 if (radius == 0)

关于c - 为什么用户输入的变量结果是 0 - C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18480479/

相关文章:

c - 递增寄存器对

c - I/O 到屏幕/标准输出

c++ - 变量的内存分配

c++ - Tinyxml 打印属性

database - 核心数据。某些数据具有 'nil' 和零值

c# - 将 c# Array.CreateInstance 创建的非基于 0 的数组转换为集合 T

python - guizero/tkinter PushButton NameError 来自 guizero PushButton.py

c - 在 C 中使用递归来添加数字

c - union 内部的 2 个结构,来自头文件

javascript - var questionsRight 不是添加正确答案