c语言 程序解释

有下面这个程序是怎么执行的?#include<stdio.h>main(){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;else... 有下面这个程序是怎么执行的?
#include<stdio.h>
main()
{int x=1,y=0;
if(! x)y++;
else if(x==0)
if(x)y+=2;
else y+=3;
printf("%d\n",y);
}
展开
 我来答
375875192
2012-03-17 · TA获得超过362个赞
知道答主
回答量:189
采纳率:0%
帮助的人:136万
展开全部
#include<stdio.h>
int main(void)
{
int x=1,y=0;
if(! x)
y++; //x不等于0不执行y++,x等于0执行y++,因为x = 1;不等于!x = 0,条件为假不
执行y++;
else if(x==0) // if 对应else 这里的else对应上面的if 两个成对出现, 所以下面的所有语句
都是这里的else的从属,由于从属里面的第一个if条件不成立,导致后面的所
语句都不会执行。个人理解
if(x)
y+=2;
else
y+=3;
printf("%d\n",y);
}

结果为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BardMercy
2012-03-17 · TA获得超过573个赞
知道答主
回答量:209
采纳率:0%
帮助的人:238万
展开全部
#include<stdio.h>
main()
{int x=1,y=0; //x,y初始化
if(! x)y++; //如果(!x) = 1,y = y + 1。此时x = 1,!x = 0,不成立,故y++不执行
else if(x==0) //如果x的值为0,执行下面语句,此时x值不为0
if(x)y+=2;// 此句不执行。
else y+=3;// 没有大括号,不知道这个else是哪个if的。如果是对应最近的if,则不执行,对应第一个if,则执行 y = y +3
printf("%d\n",y);//打印输出0 或者 3.我看好3
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dcg00000
2012-03-17 · TA获得超过907个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:109万
展开全部
首先这个程序只能回判断前两个if,因为第二个if括号里的运算结果是0,所以第三个if可以歇菜了。然后是直接输出y的值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happyshanting
2012-03-18
知道答主
回答量:9
采纳率:0%
帮助的人:1.2万
展开全部
首先x=1 第一个if语句是假的不执行
然后else if语句也不成力,也不执行。
最后执行 else 语句 Y = Y + 3;
输出 y 等于 3;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mc_carine
2012-03-17 · 超过56用户采纳过TA的回答
知道答主
回答量:226
采纳率:0%
帮助的人:120万
展开全部
我不知道你写这个程序的意图是什么?
但是判断的话。我自己写了一个,希望可以帮助到你
#include "stdio.h"
void main()
{
int x,y,z;
scanf("%d%d",&x,&y);
if(x!=y)z=1;
else if(x==y)z=0;
printf("%d\n",z);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式