C 为什么我的if语句有效,而我的else语句无效';T
很抱歉,如果以前有人问过这个问题,或者这是一个愚蠢的问题,但是我对这个网站和C都是新手。所以,当我运行这个代码时,当我键入一个答案时,任何答案,无论是对是错,它都会说明它应该说什么 代码如下:C 为什么我的if语句有效,而我的else语句无效';T,c,if-statement,string-literals,C,If Statement,String Literals,很抱歉,如果以前有人问过这个问题,或者这是一个愚蠢的问题,但是我对这个网站和C都是新手。所以,当我运行这个代码时,当我键入一个答案时,任何答案,无论是对是错,它都会说明它应该说什么 代码如下: #include <stdio.h> int main() { int x; printf("1+1="); scanf("%d", &x); if("x==2"){ printf("Watch out, we got a genius
#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;
}
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
如果(“x==2”){
printf(“小心,我们这里有个天才!”);
}
否则{
printf(“我甚至不知道该说些什么……”);
}
返回0;
}
您需要
if(x==2)
没有你需要的引号
if(x==2)
没有引号的话,试试这个
#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;
}
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
如果(x==2){
printf(“小心,我们这里有个天才!”);
}
否则{
printf(“我甚至不知道该说些什么……”);
}
返回0;
}
试试这个
#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;
}
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
如果(x==2){
printf(“小心,我们这里有个天才!”);
}
否则{
printf(“我甚至不知道该说些什么……”);
}
返回0;
}
试试看
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
//如果“x==2”,则修改此行{
如果(x==2){
printf(“小心,我们这里有个天才!”);
}
否则{
printf(“我甚至不知道该说些什么……”);
}
返回0;
}
试试看
#包括
int main()
{
int x;
printf(“1+1=”);
scanf(“%d”和&x);
//如果“x==2”,则修改此行{
如果(x==2){
printf(“小心,我们这里有个天才!”);
}
否则{
printf(“我甚至不知道该说些什么……”);
}
返回0;
}
“x==2”
是一种类型的常量字符*
,它位于内存中,并且有一个地址。C中实对象的地址永远不为0§因此表达式总是true,并且永远不会使用else分支
§尽管某些体系结构(最著名的嵌入式系统)可能具有空指针的非零位模式,但C要求它们比较等于零常量。请参见是一种
const char*
类型,它位于内存中,并且有一个地址。C中实对象的地址永远不为0,因此表达式总是true,并且永远不会使用else分支
§尽管某些体系结构(最著名的嵌入式系统)可能具有空指针的非零位模式,但C要求它们比较等于零常量。请参见
如果(x==2){
…“小心,我们这里有个天才!”-一个非常不幸的输出语句。欢迎使用堆栈溢出。请尽快阅读页面。写入的if
条件测试指向字符串的指针是否为“x==2”
是一个空指针,它不是空指针,因此if
的计算结果总是为true。因此,正如其他人所说,您需要删除x==2
周围的引号。此外,最好在每行输出的末尾打印一个换行。如果(x==2){
“小心,我们这里有个天才!”-一个非常不幸的输出语句。欢迎使用堆栈溢出。请尽快阅读页面。写入的if
条件测试指向字符串的指针是否为“x==2”
是一个空指针,它不是空指针,因此if
的计算结果总是为true。因此,正如其他人所说,您需要删除x==2
周围的引号。此外,最好在每行输出的末尾打印一个换行符。也许还有更多的喘息空间:if(x==2){
。空白是你的朋友。如果(x==2),可能会有更多的喘息空间:{
。空白是你的朋友。