问一个C语言方面的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:37:34
#include <iostream.h>
void main()
{
int a=0,b=1,c=0,d=20;
if(a) d=d-10;
else if (!b)
if(!c) d=15;
else d=25;
cout<<"d="<<d<<endl;
}

为什么输出结果是 d=20 而不是别的? 告诉我为什么不是 15 或25 ???

因为a等于0,所以跳过第一个if
又因为!b等于0,所以跳过else if
else if (!b) 这里没有“;”所以
if(!c) d=15; 这里的两句都是以!b非0
else d=25; 为前提的。
所以程序是直接输出d的结果。中间没有赋值。

因为a=>0所以不执行 d=d-10;

因为!b=>0所以不执行
if(!c) d=15;
else d=25;

所以直接执行 cout<<"d="<<d<<endl; 输出d的初始值

int a=0,b=1,c=0,d=20; //定义四个变量a b c d
if(a)//if(a) 判断a是否为非0 如果是非0就执行里面的
{ //否则跳到esle
d=d-10;}//不执行 因为a=0 而不是非0
else
{
if (!b) //这里又是一个if,!b的意思就是非b。!b=0 就是不
//执行里面的东西if(!c)都不执行
{if(!c)
{d=15;}
else {d=25; }
}
else {}//其实是这里省略了一个else 里面是个空语句 所以..
}
cout<<"d="<<d<<endl;

上面一大堆都是欺骗你的!

#include <iostream.h>
void main()
{
int a=0,b=1,c=0,d=20;
if(0){ 里面的东西}
else {if (0){里面的东西..因为是0 所以不运行}else{}}
cout<<"d="<<d<<endl;