一道c语言求教

来源:百度知道 编辑:UC知道 时间:2024/06/03 10:18:36
#include<stdio.h>
main()
{
int a=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);}
给点注释,谢谢啦

#include<stdio.h>
main()
{
int a=-1,b=1,k;
if((++a<0)&&!(b--<=0))/*++a就是a+1为0,因为这是&&,所以前面这部分为假,所以if()都为假,b--不进行*/
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);}/*因为值为假,所以执行这一步,输出1 0*/

这个程序就是考查&&运算,当&&前面为假的时候,不进行后面的判断,所以后面的语句都不运行,所以这里b输出为1而不是0

你哪句话不懂 我来教你。
QQ:838648292

首先要说明的是++x表示先加1后赋值,x++表示先赋值后加1
#include<stdio.h>
main()
{
int a=-1,b=1,k;
if((++a<0)&&!(b--<=0)) //++a=0,b--=1(但是这条语句结束后b自减,得0
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);}//if条件不成立,输出为0 0