当前位置: 代码迷 >> C语言 >> [求助]请教几道与逻辑运算及分支结构的问题
  详细解决方案

[求助]请教几道与逻辑运算及分支结构的问题

热度:336   发布时间:2006-09-16 16:31:45.0
以下是引用cdmalcl在2006-9-16 16:21:58的发言:

不不不
你可别这么想
你就按照我说的想就行

if(x=2) 这个地方起了两个效果
一个是判断通过 是 判断  
(x=2)表达式等于1 表达式为1 不代表x怎么样
第二个效果就是把2符给x
也就是这个时候 x下存储的值是2了 

第二个效果在这个程序中并没起到作用

而第一个效果判断if条件成立
进行 是 语句的执行
也就是运行了printf("OK");

明白了,如果程序要是再加一句输出x的值,那么x的值就是2对吗?
----------------解决方案--------------------------------------------------------
怎么不看看我的呢.
if(x=2),括号内的表达式是2 而不是1.整个if语句为真所以执行printf("OK");
----------------解决方案--------------------------------------------------------

以下是引用nuciewth在2006-9-16 16:35:20的发言:
怎么不看看我的呢.
if(x=2),括号内的表达式是2 而不是1.整个if语句为真所以执行printf("OK");

if(x=2),括号内的表达式是2 而不是1,这句话我还没完全理解.


----------------解决方案--------------------------------------------------------
以下是引用inku在2006-9-16 16:38:32的发言:

if(x=2),括号内的表达式是2 而不是1,这句话我还没完全理解.

一个符值也象函数一样要有个返回值(近似的这么认为)
那这个符值表达式的值就是最后赋予的值 也就是 2
判断表达式的值是1还是0 看表达式内部的式子是不是0
----------------解决方案--------------------------------------------------------

以下是引用cdmalcl在2006-9-16 16:42:10的发言:

一个符值也象函数一样要有个返回值(近似的这么认为)
那这个符值表达式的值就是最后赋予的值 也就是 2
判断表达式的值是1还是0 看表达式内部的式子是不是0

明白了,谢谢!
那我想再问一道题目
以下程序输出结果是
#include"stdio.h"
main()
{int a=5,b=8,c=3,max;
max=a;
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;
printf("max=%d\n",max);
}
答案是5,可是我觉得是8,因为
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;

这些语句都没有被执行,道理是c<b,所以b的值应该维持不变8,我错在哪里?
请两位高手指教.


----------------解决方案--------------------------------------------------------
就是这样,这个只是个细节问题,只要知道赋值表达式的值即是x的值也是表达式的值.
----------------解决方案--------------------------------------------------------
以下是引用inku在2006-9-16 16:59:11的发言:

明白了,谢谢!
那我想再问一道题目
以下程序输出结果是
#include"stdio.h"
main()
{int a=5,b=8,c=3,max;
max=a;
if(c>b)
{
if(c>a)
max=c;
else
{
if(b>a)
max=b;
}
}
printf("max=%d\n",max); //它的值还是a
}
答案是5,可是我觉得是8,因为
if(c>b)
if(c>a)
max=c;
else
if(b>a)
max=b;

这些语句都没有被执行,道理是c<b,所以b的值应该维持不变8,我错在哪里?
请两位高手指教.


----------------解决方案--------------------------------------------------------
if(c>b)
if(c>a)
max=c;
else
if(b>a)
 max=b;

这个问题在上面的帖子说过了
----------------解决方案--------------------------------------------------------
那我觉得我分析得没错呀,可是为什么我的答案是错的?
----------------解决方案--------------------------------------------------------
看13楼
----------------解决方案--------------------------------------------------------