c语言循环流程这个number 是怎么 ++的?

c语言循环流程这个number 是怎么 ++的?,第1张

while((uchar = getchar())!= '\n')

{

...

if(!(number++ % 3)) //这个是输入一个字符 number就+1么?

{ //它是怎么循环的呢?

...

}

}

把printf 打印相关可以去掉不看。整个代码清晰多了。

while((uchar = getchar())!= '\n') 这是程序退出条件,输入回车就退出该程序。

if(!(number++ % 3))

number++ 的意思是,程序走完这一次流程后+1

假设你初始的number=0 当你输入"a"

则第一次为 0%3 = 0 ----->因为 !0 为真 所以执行打印,printf("\n")--->打印执行完后,number++执行,此时number = 1 然后---->

while((uchar = getchar())!= '\n') 你输入b

1%3 = 0 --->因为 !0 为真 所以执行打印,print("\n") --->打印执行完后,number++执行,此时number = 2 然后 ---->

while((uchar = getchar())!= '\n') 你输入c

----->2%3 = 0 --->因为 !0 为真 所以执行打印,print("\n") --->打印执行完后,number++执行,此时number = 3 然后 ---->

while((uchar = getchar())!= '\n') 你输入d

----->3%3 = 1 --->因为 !1 为假 所以不执行打印,print("\n") ---> number++执行,此时number = 4 然后 ---->

while((uchar = getchar())!= '\n') 你输入e

----->4%3 = 1 --->因为 !1 为假 所以不执行打印,print("\n") ---> number++执行,此时number =5 然后 ---->

while((uchar = getchar())!= '\n') 你输入f

----->5%3 =2 --->因为 !2 为假 所以不执行打印,print("\n") ---> number++执行,此时number =6 然后 ---->

你输入 回车 程序退出。

以上就是整个流程。% 是取模计算符,简单理解就是取余数。明白了把?

我不用猜就知道你的for(factorial=1number>1factorial=factorial * number--)这句后面没加“;”,所以你的printf("%d",factorial)成了循环体,然后就是执行顺序了。

先执行foctorial=1,执行判断,print(foctorlal=1)执行(foctorial=4,number=3);

执行判断,执行print(foctorical=4),执行(foctorial=4*3=12,number=2);

执行判断,执行print(foctorial=12),执行(foctorial=12*2=24,number=1);

执行判断,跳出。所以你第一种写法只输出了到12,没输出24,修改可以zaifor语句后面加一个分号或panduan改成number>0


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8168273.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存