c语言 很多if嵌套和if后面跟着else嵌套

#include<stdio.h>main(){floata;scanf("%f",&a);while(a>99999||a<0){printf("重新输入\n");sc... #include<stdio.h>
main()
{
float a;
scanf("%f",&a);
while (a > 99999 || a < 0)
{
printf("重新输入\n");
scanf("%f",&a);
}
if (a>9999)
printf("这是个五位数");
else
if (a>999)
printf("这是个四位数\n");
else
if (a>99)
printf("三位数");
else
if (a>9)
printf("二位数");
else
if (a>0)
printf("一位数");
}
这段代码如果不用else,只用很多if,那么如果输入10000,输出结果就是“这是个五位数 这是个四位数 三位数 二位数 一位数”,就是满足了所有的if条件。
但是加上else了,就只会选择一个if条件,输入10000就只有“这是个五位数”了。
原来else还可以把满足所有条件的东西变成只满足一个条件啊。
我的意思是10000满足了所有的条件,加上else就可以单个条件输出了。
我的理解对吧?请指导指导我。
展开
 我来答
立夏只是路过
推荐于2017-10-04 · 超过21用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:31.9万
展开全部
如果都是if每个if都会做判断,因为10000都满足这五个if的条件所有输出结果“这是个五位数 这是个四位数 三位数 二位数 一位数”;

但是用if else时,如果第一个if满足条件那么下面的if else就不会做判断了。如果你把判断a>0这个语句写在前面的话输出的就是“一位数”而不是下面的语句了。
#include <stdio.h>

int main(int argc, const char * argv[]) {

float a;

scanf("%f",&a);

while (a > 99999 || a < 0)

{

printf("重新输入\n");

scanf("%f",&a);

}

if (a>0)

printf("一位数");

else if (a>9999)

printf("这是个五位数");

else if (a>999)

printf("这是个四位数\n");

else if (a>99)

printf("三位数");

else if (a>9)

printf("二位数");

}
打印出得结果;是"一位数"
匿名用户
2015-09-16
展开全部

关键看懂以下两个结构:

1、

if(A)
    B;
    C;

判断条件A,如果符合则执行B,然后if语句结束,再执行C;如果条件A不符合,则跳过if语句执行C

2、

if(A)
    B;
else
    D;
    C;

判断条件A,如果符合则执行B,否则执行D,然后if语句结束,再执行C

追问
也谢谢你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式