求讲解下C语言
发布网友
发布时间:2023-09-14 20:56
我来回答
共4个回答
热心网友
时间:2024-11-29 12:54
#include <stdio.h>
int main()
{
int a=100,x=10,y=20,ok1=5,ok2=0;
if (x<y) //执行
{
if (y!=10) //执行
{
if(!ok1) //ok1非零为真,再取非为假,不执行
{
a=1;
}
else //执行
{
if(ok2) //ok2为0,逻辑值为假,不执行
{
a=10;
}
}
}
}
a = -1; //最终赋值
printf("%d\n",a);
return 0;
}
这样能看懂吗,把大括号加上去就比较好看了,其实你不用管if语句做了什么事情,在输出a之前对a进行了一次赋值:a = -1;
之后就没有对a的操作了,那输出a肯定是-1了
热心网友
时间:2024-11-29 12:54
main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if (x<y)
if (y!=10)
If(!ok1)
a=1;
else
if(ok2) a=10;
a=-1; /*不属于上面所有if范围,上面的东西执行完,必须执行这句,不管a的值是什么,到这步,a都被赋值为-1
*/
printf(“%d\n”,a);
}
热心网友
时间:2024-11-29 12:55
答案是-1. 看下面代码. 虽然有很多if 语句. 但因为没有大括号, 所以最后是以a=-1;结束的. 也就是说 前面判断来判断去, 最后赋了 -1 给a.
void main( )
{
int a=100,x=10,y=20,ok1=5,ok2=0;
if (x<y)
if (y!=10)
if(!ok1)
a=1;
else if(ok2)
a=10;
a=-1;
printf("%d\n", a);
}
热心网友
时间:2024-11-29 12:55
前面那么多的if让你混淆了,倒数第二个语句“a=-1;”是必然会执行的("a=-1;不再任何一个if语句中")