还是不明白
追答(ch=getchar())!=‘N ’
首先出现这个,他想要实现的就是
接收字符给ch,再把ch和N比较
这一题主要考察”=“的结合,首先!=,==
优先级高于=
是从右到左的
不打括号执行结果也是一样。
不打括号就是输入一个字符
和N比较把比较的结果赋值给
ch
但是违背了他想考的内容
还是不懂呀
追答#include<stdio.h>
不打括号,先执行getchar()!='N'对吧?
追答对的,执行结果要么是真要么是假
也就是把0或者1
赋给ch
getchar()!='N'的结果是1或0,然后1或0再赋给ch?
追答false 或者true 赋给ch
追问太谢谢了
这个题呢
判断循环结束的条件是什么呀
追答循环条件是a是否为0
++c是先自增
a=6 b=0 c=0
b+=a 就是b=b+a=6 a-=++c 就是a=a-(++c)=6-1=5 c=1
a=5 b=6 c=1
b=b+a=11 a=a-(++c)=5-2=3 c=2
a=3 b=11 c=2
b=b+a=14 a=a-(++c)=3-3=0 c=3
b=14 a=0 c=3
for(;a;)//a=0 跳出循环
选择A
我不理解的是for( ;a;),这个a让我怎么判断呀
a到0的时候结束循环吗?
追答for(;a;)
a是循环条件
当a大于0执行循环体,在判断
a是否大于0,在执行循环体
知道a<=0跳出循环
单个一个a是a大于0时执行循环呀!
我刚运行了一下那个题,我输入非N字母时,显示的都是个笑脸,输入N时,显示N
这不符合那个true和false呀
追答#include<stdio.h>还是不明白为什么要把它整体括起来
追答主要是优先级的问题了 while((ch=getchar())!='N') 它是把你接受的字符存在成立面 再与N比较是否相等 如果你不打括号 他就先执行 !=
追问不打括号,先执行getchar()!='N'对吧?
追答是的
追问那这个getchar()!='N'能执行出什么结果呢?
追答不能这样比较的 你只能先赋给一个变量才能进行比较 所以ch=getchar()在拿ch与n比较
追问又不懂了