//你的代码复制得很乱 完全看不懂,没几个人会回答,因为浪费时间,花了15分钟才整理好代码,看懂一些而已 之后的就懒得写了不懂的再问
int main(void)
{
int x=1, y=1, z=10;//定义三个数
if(z<0) //此语句为第一句z = 10; 因为10大于0 不成立,不执行下列二三语句,跳转语句四
if(y>0)////此语句为第二句属于上一句的if语句 由于上个语句不成立所以不执行,
x=3;////此语句为第三句同上属于上一句的if语句 由于上个语句不成立所以x = 3没有执行,
else//此语句为第四句 由于 第一句不成立,所以跳转到这句
x=5;//此语句为第五句 x = 5,现在x变量的值是5
printf("%d\t",x);//此语句为第六句 printf 输出的是 5
if(z=y<0)
x=3;
else if(y==0)
x=5;
else
x=7;
printf("%d\t",x);
printf("%d\t");
return 0;
}
由于z=10,所以
if(z<0)
if(y>0) x=3;
else x=5;
这段不执行。 x初始为1,printf(''%d\t'',x);打印1.
z=y=1>0所以
else if(y==0) x=5;
不执行,进入到else x=7,打印出7.
其结果为1 7
同学你好,我来回答一下哈,首先%d后的/t是转义符的意思哦,也就是说返回原来的值,和上面的语句就没有关系了,所以不管上面是什么只要没有赋值(比如z=y<0,因为y<0为假所以赋值z为0,在这里z因为赋值所以改变了初值),所以,最后第一个printf输出1然后第二三个是7 0
你这个代码太不规范了,得看第一个if的范围是什么