C语言中 main() {int x=1,y=1,z=0; if(z<0) if(y>0 具体请看下边程序。由于刚刚学习这门语言,请指教

2025-06-27 01:49:47
推荐回答(4个)
回答1:

 
//你的代码复制得很乱 完全看不懂,没几个人会回答,因为浪费时间,花了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;
}

回答2:

由于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

回答3:

同学你好,我来回答一下哈,首先%d后的/t是转义符的意思哦,也就是说返回原来的值,和上面的语句就没有关系了,所以不管上面是什么只要没有赋值(比如z=y<0,因为y<0为假所以赋值z为0,在这里z因为赋值所以改变了初值),所以,最后第一个printf输出1然后第二三个是7 0

回答4:

你这个代码太不规范了,得看第一个if的范围是什么