Y?N? C语言

Python015

Y?N? C语言,第1张

代码编译是可以通过的。

从提供的图片上看,“!=”的优先级确实高于“=”,字符c被赋值的是0或者1,

当输入“?”的时候,('?'!='?')的值是0,跳出循环,不会有结果输出;

当输入其他字母的时候,(c!='?')的值是1,输出的结果应该是1对应的ACSII码的字符的前一个字符(因为输出的是--c),也就是0(NULL),正常应该是不输出结果的。

如果给(c=getchar())加括号,那么输入字母的时候,应该是输出相对应的前一个字母,比如

输入Y,输出X;

输入N,输出M;

输入?,就跳出循环了,程序运行结束。

另外要补充一句,“=”的返回值是被赋值之后的值,比如(c=0)的返回值是0,所以不会因为while里面是一个赋值表达式而会陷入死循环。这样一个很好的例子就是a=b=c=3;肯定a、b、c都被赋值为3了。

定义一个char flag标志,输出提示,提示用户输进Y/N是否继续,可以使用

do{

................//你想循环的代码

printf("\nContinue(Y/N) Input: ")

scanf("%c",&flag)

}while(flag=='y'||flag=='Y')

问题点应该是出在scanf,你输入时候的问题,程式码我测试过没问题,我将num直接给予100,c判断部分,直接给'n',可以完整执行,顾问提点应该出在scanf,你输入时候不知道操作到什麼