第4章 选择结构程序设计

简介: 第4章 选择结构程序设计

在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作任务,或者从给定的两种或多种操作选择其一。这就是选择结构要解决的问题。

4.1 选择结构和条件判断

C语言有两种选择语句:(1)if语句,用来实现两个分支的选择结构;(2)switch语句,用来实现多分支的选择结构。

4.2 用if语句实现选择结构

4.2.1 用if语句举例

[例4.2] 输入两个实数,按由小到大的顺序输出这两个数。

编写程序:

#include<stdio.h>
int main(){
    float a,b,t;
    scanf("%f,%f",&a,&b);
    if(a>b){
        t=a;
        a=b;
        b=t;    
    }
    printf("%5.2f,%5.2f\n",a,b);
    return 0;
}

4.2.2 if 语句的一般形式

(1)if(表达式) 语句1

(2)if(表达式)

语句1

else

语句2

(3)if(表达式) 语句1

else if (表达式2) 语句2

4.7 用switch语句实现多分支选择结构

switch语句是多分支选择语句。

#include <stdio.h>
int main()
{
    char grade;
    scanf("%c",&grade);
    printf("your score:");
    switch(grade){
        case'A':printf("85~100\n");break;
        case'B';printf("70~84\n");break;
        case'C';printf("60~69\n");break;
        case'D';printf("<60\n");break;
        default:printf("enter data error!\n");    
    }
    return 0;
}

4.8 选择结构程序综合举例

题目:写一个程序,判断某一年是否为闰年。

编写程序:

#include<stdio.h>
int main(){
    int year,leap;
    printf("enter year:");
    scanf("%d",&year);
    if(year%4==0){
        if(year%400==0)    
        leap=1;
        else
        leap=0;
    }else
    leap=1;}
    else
    leap=0;
    if(leap)
    printf("%d is",year);
    else
    printf("%d is not",year);
    printf("a leap year.\n");
    return 0;
}


相关文章
|
数据采集 JSON 网络协议
请你详细介绍一下HTTP请求头的常用格式
【2月更文挑战第21天】【2月更文挑战第65篇】请你详细介绍一下HTTP请求头的常用格式
243 2
|
机器学习/深度学习 人工智能 自然语言处理
基于RTMP的智慧数字人|AI数字人传输技术方案探讨
随着智慧数字人、AI数字人的兴起,越来越多的公司着手构建全息、真实感数字角色等技术合成的数字仿真人虚拟形象,通过“虚拟形象+语音交互(T-T-S、ASR)+自然语言理解(NLU)+深度学习”,构建适用于数字客服、虚拟展厅讲解、 智慧城市、智慧医疗、智慧教育等场景,通过人机可视化语音交互,释放人员基础劳动力,降低运营成本,提升智慧交互体验。
246 0
|
8月前
|
UED 开发者
【HarmonyOS——ArkTS语言】计算器的实现【合集】
【ArkTS语言-HarmonyOS】计算器的实现【合集】组件,点击等号后计算函数高效解析表达式并给出准确结果,达成核心功能要求。错误提示不够详尽,难以助力用户快速定位输入错误;响应式设计不足,在不同屏幕规格下适配性差。总体而言,本次实验已成功构建起基本功能框架,后续将针对上述问题深入探究优化方案,不断打磨细节,在完善计算器功能与提升用户体验的道路上持续精进,进而提升自身编程与应用开发的综合能力水平。利用按钮组件顺利完成布局设计,数字、运算符及功能按钮排列有序,操作逻辑清晰直观。
345 8
|
10月前
|
IDE 架构师 测试技术
通义灵码体验反馈
作为一名系统架构师,我试用了通义灵码个人版,发现其显著提升了开发效率,整体提效达30%。具体流程包括在VSCode中安装插件、登录阿里云账号、使用灵码进行代码解释、注释、优化及单元测试等。灵码在代码生成速度、质量及解释方面表现出色,但在账号登录和默认注释语言方面仍有优化空间。
378 3
|
11月前
|
网络协议 应用服务中间件 Apache
nginx基础
nginx基础
54 0
|
机器学习/深度学习 人工智能 自然语言处理
基于超大规模预训练模型的小样本和零样本学习
-内容概要: 一、人工智能进入三轮同时驱动的时代 二、M6:中文多模态预训练模型 三、M6超大规模预训练模型的应用场景 四、超大规模中文预训练语言模型PLUG 五、大规模预训练模型AliceMind在VQA任务上的突破 六、从弱人工智能(Narrow AI)到通用人工智能(Artificial General Intelligence)
基于超大规模预训练模型的小样本和零样本学习
|
C语言
C语言中的可变参数
C语言中的可变参数
148 0
|
敏捷开发 存储 运维
为什么需要微服务
微服务这么火,是不是我们的业务一定要上微服务?
为什么需要微服务
|
算法 Python
递归算法的典型程序,分形树的绘制和汉诺塔的问题解决。
在程序中,程序自身调用自身的这种技巧称为递归。我们来通俗的讲一下递归,从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山,山里有座庙,庙里有个和尚,和尚在讲故事,从前有座山…我们小时候应该都听过这样的故事,大家想想,这个故事如果以 我们程序的思维来看是不是递归?当然,这的确很想递归,因为老和尚在一直讲故事,这就像在调用自身老和尚讲故事这个函数,但我要告诉大家的是,
299 0
递归算法的典型程序,分形树的绘制和汉诺塔的问题解决。
|
Java 网络安全 虚拟化
Spring Boot 项目 启动 端口经常被占用 彻底解决方案
Spring Boot 项目 启动 端口经常被占用 彻底解决方案
1294 0