这个C语言题目为什么等于20,算法写详细点#include main(){int n=4;while(n--)printf("%d",--n);}
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/14 00:35:49
![这个C语言题目为什么等于20,算法写详细点#include main(){int n=4;while(n--)printf(](/uploads/image/z/955163-11-3.jpg?t=%E8%BF%99%E4%B8%AAC%E8%AF%AD%E8%A8%80%E9%A2%98%E7%9B%AE%E4%B8%BA%E4%BB%80%E4%B9%88%E7%AD%89%E4%BA%8E20%2C%E7%AE%97%E6%B3%95%E5%86%99%E8%AF%A6%E7%BB%86%E7%82%B9%23include+main%28%29%7Bint+n%3D4%3Bwhile%28n--%29printf%28%22%25d%22%2C--n%29%3B%7D)
这个C语言题目为什么等于20,算法写详细点#include main(){int n=4;while(n--)printf("%d",--n);}
这个C语言题目为什么等于20,算法写详细点
#include
main()
{
int n=4;
while(n--)
printf("%d",--n);
}
这个C语言题目为什么等于20,算法写详细点#include main(){int n=4;while(n--)printf("%d",--n);}
1 结果不是20,是2和0,只不过连到一起了
2
第一次循环:n--=n=4,为真,判断结束后n=n-1=3,同时运行循环体内容,
--n=n-1=2,所以第一次输出2
第二次循环:n--=n=2,为真,判断结束后n=n-1=1,同时运行循环体内容,
--n=n-1=0,所以第一次输出0
第三次,n--=n=0,不为真,循环结束
所以输出结果为20
while(n--) 先判断n是真还是假 在执行n-1
printf 先执行n-1 再输出
循环第1次 while判断n=4为真 n=3 输出n的值前先执行n-1=2 再输出n的值
循环第2次 while判断n=2为真 n=1 输出n的值前先执行n-1=0 再输出n的值
--n和n-- 是先减和后减的问题 比如a=--n 是n的值先只减1再...
全部展开
while(n--) 先判断n是真还是假 在执行n-1
printf 先执行n-1 再输出
循环第1次 while判断n=4为真 n=3 输出n的值前先执行n-1=2 再输出n的值
循环第2次 while判断n=2为真 n=1 输出n的值前先执行n-1=0 再输出n的值
--n和n-- 是先减和后减的问题 比如a=--n 是n的值先只减1再赋值给a 而a=n--是先将n的值赋给a再只减1
y+=y-=m*=y
m=m*y=10;
y=y-m=-8;
y=y+y=-16
收起