C语言的一道题目。sa

来源:百度知道 编辑:UC知道 时间:2024/05/16 12:16:59
main()
{ int x=100,a=10,b=20,OK1=5,OK2=0;
if (a<b)
if (b!=5)
if (!OK1)
x=1;
else if (OK2) x=10;
{printf("%d \n",a);}
printf("%d\n",x);
}
要详细点的答案撒,
刚才题目弄错了,不好意思啊/大哥们再帮我下,要详细的答案撒。谢谢main()
{ int x=100,a=10,b=20,OK1=5,OK2=0;
if (a<b)
if (b!=5)
if (!OK1)
x=1;
else if (OK2) x=10;
x+=5
printf("%d\n",x);
}

main()
{ int x=100,a=10,b=20,OK1=5,OK2=0;
if (a<b) //此时a为10,b为20,则运行下一条语句
if (b!=5) //此时b为20,不等于5,也成立,运行下一条语句
if (!OK1) //OK1为5,也就是非0,为真,而!OK1则为假,则不运行后面的,直接到else那里
x=1;
else if (OK2) x=10; //此时OK2也为假,则不运行x=10而运行下面的printf
{printf("%d \n",a);}
printf("%d\n",x);
}

我整理一下你的程序如下:
main()
{ int x=100,a=10,b=20,OK1=5,OK2=0;
if (a<b) //此时a为10,b为20,则运行下一条语句
{ if (b!=5) //此时b为20,不等于5,也成立,运行下一条语句
{ if (!OK1) //OK1为5,也就是非0,为真,而!OK1则为假,则不运行后面的,直接到else那里
x=1;
else if (OK2)
x=10; //此时OK2也为假,则不运行x=10而运行下面的printf
}
}
{
printf("%d \n",a);
}
printf("%d\n",x);
}
也就是说你的{printf("%d \n",a);}的两个花括号
是没有用的

http://community.csdn.net/IndexPage/SmartQuestion.aspx