???
怎么和我们这的一个老师出的考试题一样
if后面没加{}
所以只不执行z=x
那我想再请教亮哥两道题目
[问题求助]请教两道有关c语言分支结构的问题
以下程序的输出结果是
#include"stidio.h"
main()
{int x=1;
if(x=2)
printf("OK");
else if(x<2)printf("%d\n",x);
else printf("Quit");
}
答案是OK,为什么不是1啊?
以下程序的输出结果是
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);
}
答案是2,为什么不是3啊?
----------------解决方案--------------------------------------------------------
那我想再请教亮哥两道题目
[问题求助]请教两道有关c语言分支结构的问题
以下程序的输出结果是
#include"stidio.h"
main()
{int x=1;
if(x=2) //if()t条件为真(2).所以会执行打印OK
printf("OK");
else if(x<2)printf("%d\n",x);//这里如果没有else的话也会执行.
else printf("Quit");
}
答案是OK,为什么不是1啊?
以下程序的输出结果是
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);
}
答案是2,为什么不是3啊?
if(x<y)
{
if(y<0)z=0;
else z+=1;
}
printf("%d\n",z); 匹配问题.
----------------解决方案--------------------------------------------------------
那我想再请教亮哥两道题目
[问题求助]请教两道有关c语言分支结构的问题
以下程序的输出结果是
#include"stidio.h"
main()
{int x=1;
if(x=2)/*符值运算*/
printf("OK");
else if(x<2)printf("%d\n",x);
else printf("Quit");
}
答案是OK,为什么不是1啊?
以下程序的输出结果是
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0)z=0;
else z+=1; else和最近无对应if对应(没{}指定的时候)
printf("%d\n",z);
}
答案是2,为什么不是3啊?
----------------解决方案--------------------------------------------------------
to:nuciewth
因为x>y所以
{
if(y<0)z=0;
else z+=1;
}
这几步根本就没有执行过,所以z的值还是和原来一样是2对吗?是这样理解的吗?
----------------解决方案--------------------------------------------------------
对
----------------解决方案--------------------------------------------------------
main()
{int x=1;
if(x=2)/*符值运算*/
这符值运算为什么就是打印OK,我知道反正x<2就要打印出x的值,因为一开始定义了x=1,所以我觉得答案是1,不知道我错在哪里了?
----------------解决方案--------------------------------------------------------
因为整个(x=2)整个表达式的值就是1了 而且x=2
----------------解决方案--------------------------------------------------------
if(x=2),括号里的表达式值为2,故条件成立.
#include<stdio.h>
main()
{
int x;
printf("%d",x=2);
getch();
}
----------------解决方案--------------------------------------------------------
因为整个(x=2)整个表达式的值就是1了 而且x=2
是不是因为(x=2)这个表达是1,所以等价与if(x==1),执行打印出OK这个语句,又因为一开始就定义了x=1,所以符合if(x==1),所以答案是OK,我的理解对吗?
----------------解决方案--------------------------------------------------------
是不是因为(x=2)这个表达是1,所以等价与if(x==1),执行打印出OK这个语句,又因为一开始就定义了x=1,所以符合if(x==1),所以答案是OK,我的理解对吗?
不不不
你可别这么想
你就按照我说的想就行
if(x=2) 这个地方起了两个效果
一个是判断通过 是 判断
(x=2)表达式等于1 表达式为1 不代表x怎么样
第二个效果就是把2符给x
也就是这个时候 x下存储的值是2了
第二个效果在这个程序中并没起到作用
而第一个效果判断if条件成立
进行 是 语句的执行
也就是运行了printf("OK");
----------------解决方案--------------------------------------------------------