1

抱歉,如果之前有人问过这个问题或者这是一个愚蠢的问题,但我对网站和 C 都是新手。所以,当我运行这段代码时,当我输入答案时,任何答案,无论是对还是错,它都会说if 语句何时应该说什么。

这是代码:

#include <stdio.h>
int main()
{
    int x;
    printf("1+1=");
    scanf("%d", &x);
    if("x==2"){
        printf("Watch out, we got a genius over here!");
    }
    else {
        printf("I don't even know what to say to this...");
    }
    return 0;
}
4

4 回答 4

10

你需要

if(x==2) 

没有引号

于 2013-10-18T02:35:44.133 回答
3

尝试这个

#include <stdio.h>
int main()
{
int x;
printf("1+1=");
scanf("%d", &x);
if(x==2){
    printf("Watch out, we got a genius over here!");
}
else {
    printf("I don't even know what to say to this...");
}
return 0;
}
于 2013-10-18T02:37:09.977 回答
3

尝试

#include <stdio.h>
int main()
{
    int x;
    printf("1+1=");
    scanf("%d", &x);
    //modify this line if("x==2"){
    if(x==2){
        printf("Watch out, we got a genius over here!");
    }
    else {
        printf("I don't even know what to say to this...");
    }
    return 0;
}
于 2013-10-18T02:37:26.570 回答
1

"x==2"是位于内存中并具有地址的类型的字符串文字。const char*C 中真实对象的地址永远不会是 0 §因此表达式始终为 ,永远不会采用 else 分支


§尽管某些架构(最显着的嵌入式系统)可能具有用于 NULL 指针的非零位模式,但 C 要求它们比较等于零常量。请参阅NULL 宏何时不是 0?

于 2013-10-18T03:02:09.910 回答