有没有人一说一下这个程序的运行过程和结果
本帖最后由 朝歌兮、 于 2020-2-23 20:58 编辑#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
if (a++ < 9)printf("%d\n", a);
else
{
printf("%d\n", a--);
}
return 0;
}
当a=9的时候,运行结果为什么是10? 首先执行判断 if (a++ < 9) 里面的 a++,现在 a = 10
然后执行 printf("%d\n", a--); 先打印 a ,然后执行 a-- 当你输入a=9的时候,先判断a++是否大于9,但此时已经执行过a++了。所以a=10。执行else语句。输出a--,但自增自减的作用是在下一轮的时候在显示,所以输出10。如果你在输出一下a,结果就是9了。
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
if (a++ < 9)
{
printf("%d\n", a);
}
else
{
printf("%d\n", a--);
printf("%d\n", a);
}
return 0;
} 一个账号 发表于 2020-2-23 21:10
首先执行判断 if (a++ < 9) 里面的 a++,现在 a = 10
然后执行 printf("%d\n", a--); 先打印 a ,然后执 ...
感谢!后自减是先打印a,然后再做自减对吗? 良弓无箭 发表于 2020-2-23 21:14
当你输入a=9的时候,先判断a++是否大于9,但此时已经执行过a++了。所以a=10。执行else语句。输出a--,但自 ...
明白了 感谢!
页:
[1]