小菜鸡溜溜达 发表于 2021-6-7 13:02:07

看不懂这段代码了,求大佬解释

#include <stdio .h>
main()
{
   int x =1,y =0;
   if(!x)y++;            /*当x≠0时y++?*/
   else if (x==0)   /*若x=0继续运行*/
             if(x)y+=2;   /*若x为1时运行y+=2??*/
             else y+=3;               
      printf(''%d\n'',y);
}

wp231957 发表于 2021-6-7 13:08:53

这样代码,我给它定义,废柴,没有研究意义

肖-肖 发表于 2021-6-7 13:30:42

本帖最后由 肖-肖 于 2021-6-7 13:36 编辑

所有解释全在注释中了

注意的地方也写上了

#include <stdio.h>
int main()
{
   int x=0,y=0;
   if(!x)
      y++;            /*当x=0时y++ 注意这里执行后else if那里虽然也满足条件但是不会执行最后结果y是1*/
   else if (x == 0)   
             if(x)      
                y+=2;   /*若x为1时运行y+=2?答案是不会因为else if (x==0)这个条件不满足哦~~~~*/
             else
                y+=3;   //总结-->x=0 会执行y++ y由原来的0变成1 如果x=1那么什么都不执行 y还是0
      printf("%d\n",y);

      return 0;
}


其实注释中写的都是逻辑上需要注意的,你代码中写的等于不对 还有stdio.h 点左边多个空格

还有应该加上int --》变成int main() 和 return 0

小菜鸡溜溜达 发表于 2021-6-7 16:02:28

肖-肖 发表于 2021-6-7 13:30
所有解释全在注释中了

注意的地方也写上了


我是照着书上习题拿手机打出来的
这句话''答案是不会因为else if (x==0)这个条件不满足哦''怎么理解?

肖-肖 发表于 2021-6-7 16:04:06

小菜鸡溜溜达 发表于 2021-6-7 16:02
我是照着书上习题拿手机打出来的
这句话''答案是不会因为else if (x==0)这个条件不满足哦''怎么理解?

因为x为1的时候,x==0条件不满足

小菜鸡溜溜达 发表于 2021-6-7 16:04:35

肖-肖 发表于 2021-6-7 13:30
所有解释全在注释中了

注意的地方也写上了


还能写int main()?
我在看书期末复习,书里代码没看见有int main()这样式的,清一色main()

肖-肖 发表于 2021-6-7 16:05:15

小菜鸡溜溜达 发表于 2021-6-7 16:04
还能写int main()?
我在看书期末复习,书里代码没看见有int main()这样式的,清一色main()

嗯 一般都写int main()

小菜鸡溜溜达 发表于 2021-6-7 16:07:29

肖-肖 发表于 2021-6-7 16:04
因为x为1的时候,x==0条件不满足

对啊,即使x等于0的时候这段代码都不会被执行,然后我觉得代码有那一段很多余,我还以为我理解错了,明白您意思了

肖-肖 发表于 2021-6-7 16:09:44

小菜鸡溜溜达 发表于 2021-6-7 16:07
对啊,即使x等于0的时候这段代码都不会被执行,然后我觉得代码有那一段很多余,我还以为我理解错了,明白 ...

嗯 嗯

wp231957 发表于 2021-6-7 17:18:50

小菜鸡溜溜达 发表于 2021-6-7 16:04
还能写int main()?
我在看书期末复习,书里代码没看见有int main()这样式的,清一色main()

main()这是相当古董的写法了
以致于现在有种说法,凡是看到这样写法的资料或视频,都可以扔掉了

小菜鸡溜溜达 发表于 2021-6-7 17:52:26

wp231957 发表于 2021-6-7 17:18
main()这是相当古董的写法了
以致于现在有种说法,凡是看到这样写法的资料或视频,都可以扔掉了

大学教材上全是main()
[捂脸]
页: [1]
查看完整版本: 看不懂这段代码了,求大佬解释