这个C语言题目为什么等于20,算法写详细点#include main(){int n=4;while(n--)printf("%d",--n);}
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 19:41:48
这个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
收起