帮忙分析一下这道题好吗??

来源:百度知道 编辑:UC知道 时间:2024/05/06 15:43:47
#include<stdio.h>
int main()
{
int x;
printf("请输入一个数值:");
scanf("%d",&x);
if(x--<=5) printf("%d",x);
else printf("%d",x++);
return 0;
}
我试过很多次无论输入什么数,它输出的答案都执行if语句后面的答案,为什么??

呵呵,被人抢了.
确实是这样的,X++是先操作再执行的,所以printf("%d",x++)和前面的 printf("%d",x)结果是一样的.如果你想输入8得到8的话应该用++X:
#include<stdio.h>
int main()
{
int x;
printf("请输入一个数值:");
scanf("%d",&x);
if(x--<=5) printf("%d",x);

else printf("%d",++x); (更改这里)

return 0;
}

不是因为都执行if后面的答案,而是x和x++的输出结果是一样的,所以不管输入的什么数,都只会输出x-1
x++的意思是先使用x的值,然后再进行自加运算,所以输出的值是一样,但是if...else...执行完以后x的值是不一样的,你可以试着运行下面这个程序,就会看到差别
#include<stdio.h>
int main()
{
int x;
printf("请输入一个数值:");
scanf("%d",&x);
if(x--<=5) printf("%d",x);
else printf("%d",x++);
printf("%d",x);
return 0;
}