(极端Noob在这里)为什么这个C代码不起作用?

use*_*045 -5 c

为什么这不起作用,我对编程很新,但我似乎无法弄清楚为什么这不能正常工作.

#include <stdio.h>
#include <math.h>

int main(){
    int num1;
    printf("Enter 1, 2, 3.");
    scanf("%d", &num1);
    if(num1 = 1)
        printf("You entered one");
    else if(num1 = 2)
        printf("You entered two");
    else if(num1 = 3)
        printf("You entered three");
    else
        printf("Invalid");
}
Run Code Online (Sandbox Code Playgroud)

MrH*_*hma 9

在C中,在条件(if语句)中使用赋值(int x = 5)是有效的.

例如:

int x = 0;

if (x = 5)
{

}
Run Code Online (Sandbox Code Playgroud)

如果可以完成赋值并且值!= 0,那么它将评估为true(它返回5到"if"并且所有非零项都按惯例为真).在这种情况下,它可以完成并返回5 .

你可能正在寻找这个:

int x = 0;

if (x == 5)
{

}
Run Code Online (Sandbox Code Playgroud)

这将评估为false(0).

请记住:您使用单个等号"="表示"赋值".使用双等号"=="表示"比较".


Tom*_*azy 6

替换所有的=,==你应该没事(因为=用于赋值,而==用于测试相等性,这似乎是你想要做的)