C++很基础的问题,偶是小菜尿

来源:百度知道 编辑:UC知道 时间:2024/06/07 14:30:10
他的输出为什么是20?
#include<iostream.h>
void main()
{
int x;
int a=c=0;
int b=5;
int d=20;

if(a)
d=d-10;
else
if(!b)
if(!c)
x=15;
else
x=25;
cout<<d<<endl;
}
不好意思,想请教下if(!b)是什么意思?

他们回答的都是对的 但我想你是想了解程序的执行流程

#include<iostream.h>
void main()
{
int x;
int a=c=0;
int b=5;
int d=20;
if(a) //a=0if语句不成立 转到else
d=d-10;
else
if(!b) //b=5则!b就是0if同样不成立则下面的if else都得不到执行
直接跳到cout处
if(!c) //得不到执行
x=15;
else //与if(!c)对应 所以也没有得到执行
x=25; cout<<d<<endl;
}

貌似因为D=20

因为a=0,则if(a)就为假,不执行d=d-10;
所以最后d的值还是20

因为程序中a的初始值为0,也就是说当程序运行到第一个if时,条件不满足,所以不执行d= d-10;也就是说d的值为20,最后输出的时候自然也就是20

if(a) //a为0,假,跳到else执行
d=d-10;
else
if(!b) //!b为假,执行下一语句
if(!c) x=15; //!c为真
else
x=25;
cout<<d<<endl;
从头到尾d的值一直不变,所以输出20