C语言的一道题怎么做?

#include<stdio.h>void main(){ int a,b,c; a=b=c=0; ++a||++b&&++c; printf("a=%d\tb=%d\tc=%d\n",a,b,c);a++ && ++b || ++c;printf("a=%d\tb=%d\tc=%d\n",a,b,c);if(a=c<1) b++ ;printf("a=%d\tb=%d\tc=%d\n",a,b,c);}

#include<stdio.h>
#include<stdlib.h>

int main()
{
int a,b,c;
a=b=c=0;

//++a后a=1,1||++b&&++c可以判断||运算符的运算结果肯定为1了,所以++b&&++c不会执行,既b=0,c=0
//所以输出a=1 b=0 c=0
++a||++b&&++c;
printf("a=%d\tb=%d\tc=%d\n",a,b,c);

//a++后a=2,还不能判断&&运算符的运算结果,所以继续执行++b,既b=1
//而2&&1||++c的运算结果为1||++c,可以判断||运算符的运算结果肯定为1了
//所以++c不会执行,既c=0
//所以输出a=2 b=1 c=0
a++&&++b||++c;
printf("a=%d\tb=%d\tc=%d\n",a,b,c);

//由于比较运算符的优先级高于赋值运算符,所以先执行c<1,而c=0,所以c<1的结果为1
//再把c<1的结果赋给a,所以a=1,所以if(a=1)为真,执行b++,所以b=2
//所以输出a=1 b=2 c=0
if(a=c<1) b++ ;
printf("a=%d\tb=%d\tc=%d\n",a,b,c);

system("PAUSE");
return EXIT_SUCCESS;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-19
提问题哪有像你这样的,程序要实现什么功能都不说……追问

就是逻辑运算