#include<stdio.h> void main( ) { int x; scanf(“%d”,&x); if (x - - < 5) printf(“%d\n”,x)

if里面的判断是如何执行的?

if条件里的x就是你输入的值,比如你输入的是4,这时满足条件,但是输出的是3;如果你输入的是5,就不满足if条件,这时什么也不做。x-- 或者x++都是先将x参与运算,然后才将X的值自减或者自增1.
另外,楼上的朋友说错了,不是什么优先级的问题。本来就是那么规定的,比如如果是
if(++x>5)呢,输入5的时候就满足条件,因为这个时候是将X的值自增1,然后才参与运算。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-30
楼主你好,--的运算是自减一,优先级先于判断运算<
总的运算是从右到左。
因此先判断x<5,然后对x进行--的运算。
所以如果x<5,最后程序会输出结果为x-1;
如果x>=5,程序不输出

像以后这种题目,如果没有括号的话,就是先判断原来的数字,再进行自加,自减等运算。本回答被提问者采纳
第2个回答  2011-06-30
//你这里错了: scanf("%d",x);
//输入时 x前面应加 & 即:scanf("%d",&x);
//就是必须要加的:

#include <stdio.h>
void main()
{
int x,A,B,C;
scanf("%d",&x);
if(x>=90)
printf("A");
else
if(x>=60)
printf("B");
else
printf("C");
getch();
}
第3个回答  2011-06-30
先做x<5判断然后x- - 操作

...main() { int x; scanf("%d",&x); if(x--<5) printf("%d\\n",x...
你输入的数是什么 假如是5 那么首先先判断第一个 x不是小于5 所以执行else 由于先执行了前一段的判断了 所以执行完之后 x自己就-- 所以是4 而且在else的时候 x++是先输出后自加的 所以答案不变 还是4

...int main(){ int x; scanf("%d",&x); if(x=5) printf("***...
如果你想输入的x是5时输出***,输入的x不是5时输出#,那么:if(x=5)改为if(x==5)

...main() { int x; scanf("%d",&x); if(x--<5) printf("%d"'x...
输入5时先判断x--是否小于5,因为不小于,所以x=x-1;x=4;执行else后的语句打印4,打印后x为5

#include<stdio.h> main() { int x; scanf("%d",x-5); if(x>15)print...
scanf("%d", &x); \/\/输入一个数字并赋值给变量x

...main() { int x; scanf("%d",&x); if(x++>5) printf("%d",x...
if(x++ > 5) 在这里 x已经被++了一次了,所以输出一定是加一的结果。还有 在比较的时候 这样的比较是用x ++之前的值比较的 也就是你输入什么 就用什么和5比 还有后面的两个printf 打印有什么区别?如果说有区别的话 是6 输出7 的时候没有换行……3输4的时候 换了一行……...

C语言程序,编程.
第三点,在main函数最后最好加上一句 return 0;。第四点,作为一个程序员,缩进要写的好看点。我的编译通过的程序。include <stdio.h> int main(void){ int x,y;scanf("%d",&x);if( x <= 5 )y=x*x+3*x-4;if( x > 5 )y=x*x-5*x+7;printf("%d",y);return 0;} ...

main() { int x; scanf("%d",&x); if(x++>5) printf("%d\\n",x); el...
x++>5等价于x>5,x++ 因为x的值为5,所以x>5不成立,然后,x++后就变成6 然后if语句不成立就执行else语句 而 printf("%d\\n",x--);是先输出x 的值,然后x--;执行完if语句后,x已经自增,变成6,所以最后输出的结果为6,但是输出完后,x自减又变成5,你可以在最后加一条语句 printf(...

#include "stdio.h" int main (void) { }
if 语句的判断条件中少了一个等号应该改成“if (x == y + z)”if 语句后面多了一个分号,应该去掉。修改之后的代码如下所示:include "stdio.h"int main(void){ int x;int y = 2, z = 3;scanf("%d", &x);if (x == y + z)printf("***");else printf("###");return 0;...

#include<stdio.h> int main() {int x,y; printf("请输入x的值...
你没分清字符和整数的区别

#include<stdio.h> #include<math.h> void main()
include<math.h> void main(){ int a,b,c,i,x;printf("请输入一个整数n=");scanf("%d",&a);i=2;c=0;b=(int)sqrt(a);while(i<=b&&c==0){ x=a%i;if(x==0){c=1;break;} else i=i+1;} if(c==0&&a!=0&&a!=1) printf("%d is a prime number\\n",a);else ...

相似回答