程序运行输出结果是多少?

来源:百度知道 编辑:UC知道 时间:2024/09/28 07:40:30
#include "stdio.h"
main()
{
int x=100,a=10,b=20,ok1=5,ok2=0;
if(a<b) if (b!=15) if(!ok1) x=1;
else if (ok2) x=10;
else x=-1;
printf("%d\n",x);
}
为什么结果是x=-1?
讲详细点 ,你们两位说了我还是不太明白

#include "stdio.h"
main()
{
int x=100,a=10,b=20,ok1=5,ok2=0;
if(a<b) //成立
if (b!=15) //成立
if(!ok1) //ok1等于5,为真,!ok1则为假,执行下面第一个else
x=1;
else
if (ok2) //不成立 ,执行下面else
x=10;
else
x=-1; //所以x= -1
printf("%d\n",x);
}

在你那个条件里
if(!ok1)
x=1;
ok1=5,为真,然后取反,条件为假,所以不会执行x=1;转入下面的
else if (ok2)
x=10;
ok2=0,所以条件为假,也不会执行x=10;转入下面的:
else x=-1
故输出的结果为x=-1

if(a<b) if (b!=15) if(!ok1) x=1;
else if (ok2) x=10;
这里的条件不满足 当然结果是-1了