熟练掌握选择结构

文章目录


前言

在顺序结构程序中,程序的流程是固定的,不能跳转,只能按照书写的先后顺序逐条逐句地执行。所以一旦发生特殊情况(例如发现输入的数据不合法等),将无法进行特殊处理,而且在实际问题中,有很多时候需要根据不同的判断条件执行不同的处理步骤。例如1.根据“体指数”,判断某人的体重类型(正常、低、超重、肥胖)。

2.如果输入的三角形三边能构成一个三角形,则计算三角形的面积。

一、三种形式的条件语句

(1)if形式:if(表达式p) 可执行语句A

(2)if-else形式: if(表达式p)可执行语句1 else 可执行语句2

(3)else-if形式:if(表达式1)可执行语句1

else if(表达式2)可执行语句2

……

else if(表达式m)可执行语句m 

else 可执行语句m+1

二、流程图

 

 

三.例题

1.体型判断

判断某人是否属于肥胖体型。根据身高与体重因素,医务工作者经广泛的调查分析给出了以下按“体指数”对肥胖程度的划分: 体指数t=w/h2(w为体重,单位为kg;h为身高,单位为m)

当t < 18时,为低体重;

当18≤t<25时,为正常体重;

当25≤t<27时,为超重体重;

当t≥27时,为肥胖。

编程从键盘输入被测人的身高 h 和体重 w,根据给定公式计算体指数 t,然后判断被测人的体重属于何种类型。

测试输入:1.60,40;

预期输出: 170.817261

代码如下

#include  <stdio.h>
int main(void)
{
    float  h, w, t;
    scanf("%f,%f",&h,&w);
    t=w/(h*h);
    printf("Please enter h,w:t=%f    ",t);
    if(t<18)
    {
        printf("Lower weight!",t);
    }
    else if(t>=18 && t<=25)
    {
        printf("Standard weight!",t);
    }
    else if(t>25 && t<27)
    {
        printf("Higher weight!",t);
    }
    else 
    {
        printf("Too fat!",t);
    }
     return 0;
}

2.数数的手指

一个小女孩正在用左手手指数数,从1到n。她从拇指算作 1 开始数起,然后食指为 2,中指为 3,无名指为 4,小指为 5。接下来调转方向,无名指算作 6,中指为 7,食指为 8,大拇指为 9,接下来食指算作 10,如此反复。问如果继续这种方式数下去,最后结束时是停在哪根手指上?

测试输入 : 1000

预期输出 :食指

代码如下

#include<stdio.h>
int main(void)
{
    int n, mod;
    printf("Input error!");
    scanf("%d", &n);
    mod = n % 8;
    switch (mod)
    {
        case 0:
               printf("食指");
               break;
        case 1:
               printf("大拇指");
               break;
        case 2:
               printf("食指");
               break;
        case 3:
               printf("中指");
               break;
        case 4:
               printf("无名指");
               break;
        case 5:
               printf("小指");
               break;
        case 6:
               printf("无名指");
               break;
        case 7:
               printf("中指");
               break;
    }
    return 0;
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值