C语言问题,谢谢啦~

来源:百度知道 编辑:UC知道 时间:2024/06/16 22:02:08
#include<stdio.h>
main()
{ int x=100,a=10,b=20;
int v1=5,v2=0;
if(a<b)
if(b!=15)
if(!v1)
x=1;
else
if(v2) x=10;
x=-1;
printf(“%d”,x);
}
这个程序是什么意思啊?特别是下面下这段:
if(!v1)
x=1;
else
if(v2) x=10;
x=-1;

谢谢啦~

这个程序不知道干什么用的!!!结果是-1
if(!v1) //v1=5为真,取反为假,下面那句就不执行
x=1;
else if(v2) x=10; //v2=0,也是为假,x=10也不执行
x=-1; //所以x就等于-1

我来告诉你一个理论
在if的条件语句中
if(IS){。。。}, 如果IS的值不等于0就执行{。。。},否则跳过。

首先你应该明白:当且仅当一个变量的值为1,它的bool值才是true的!其他情况都是假!
在if(!v1)中,!v1中,V1=5是假,加“非‘!’”之后变成真,执行if语句!if(v2)也是同样的道理,主要是搞清bool变量的判断!

结果是-1
if(!v1) //v1=5为真,取反为假,下面那句就不执行
x=1;
else if(v2) x=10; //v2=0,也是为假,x=10也不执行
x=-1; //所以x就等于-1