C语言控制语句——分支语句
条件语句用来根据不同的条件来执行不同的语句,C语言中常用的条件语句包括if语句和switch语句。
if 语句

语法格式:
if (条件) {条件成立时,要做的事……
}
案例需求:
- 定义一个整数变量记录年龄
- 判断是否满 18 岁 (>=)
- 如果满 18 岁,允许进网吧嗨皮
示例代码:
#include <stdio.h>int main() {// 定义一个整数变量记录年龄int age;printf("请输入年龄:");scanf("%d", &age);// 判断是否满 18 岁 (>=)if (age >= 18) {// 如果满 18 岁,允许进网吧嗨皮printf("允许进网吧嗨皮\n");}return 0;
}
if…else 语句
基本语法

语法格式:
if (条件) {条件成立时,要做的事……
} else {条件不成立时,要做的事 ……
}
案例需求:
- 定义一个整数变量记录年龄
- 判断是否满 18 岁 (>=)
- 如果满 18 岁,允许进网吧嗨皮
- 否则,提示回家写作业
示例代码:
#include <stdio.h>int main() {// 定义一个整数变量记录年龄int age;printf("请输入年龄:");scanf("%d", &age);// 判断是否满 18 岁 (>=)if (age >= 18) {// 如果满 18 岁,允许进网吧嗨皮printf("允许进网吧嗨皮\n");} else {// 否则,提示回家写作业printf("回家写作业\n");}return 0;
}
三目运算符
| 运算符 | 术语 | 示例 | 结果 |
|---|---|---|---|
?! | 三目运算符 | a>b?a:b | – |
示例代码:
#include <stdio.h>int main() {// 通过三目运算符求2个数的最大值int a = 10;int b = 20;int c = a > b ? a : b;printf("最大值:%d\n", c);return 0;
}
if…else if…else语句

语法格式:
if (条件1) {条件1成立时,要做的事……
} else if(条件2) {条件2成立时,要做的事 ……
} else {条件不成立时,要做的事 ……
}
案例需求:
- 天猫超市双 11 推出以下优惠促销活动:
- 购物满 50 元,打 9 折;
- 购物满 100 元,打 8 折;
- 购物满 200 元,打 7 折;
- 购物满 300 元,打 6 折;
- 编程计算当购物满 s 元时,实际付费多少?
示例代码:
#include <stdio.h>int main() {// 1.定义变量记录购买金额 定义变量记录实际费用float money, real_money;// 2.输入购买金额printf("请输入购买金额:");scanf("%f", &money);// 3.根据购买金额判断折扣if (money >= 50 && money < 100) {// 购物满 50 元,打 9 折;real_money = money * 0.9;} else if (money >= 100 && money < 200) {// 购物满 100 元,打 8 折;real_money = money * 0.8;} else if (money >= 200 && money < 300) {// 购物满 200 元,打 7 折;real_money = money * 0.7;} else if (money >= 300) {// 购物满 300 元,打 6 折;real_money = money * 0.6;} else {// 不满50 原价real_money = money;}printf("购买金额: %f 实际价格: %f\n", money, real_money);return 0;
}
优化后的代码:
#include <stdio.h>int main()
{// 1.定义变量记录购买金额 定义变量记录实际费用float money, real_money;// 2.输入购买金额printf("请输入购买金额:");scanf("%f", &money);// 3.根据购买金额判断折扣 if (money >= 300) {// 购物满 300 元,打 6 折;real_money = money * 0.6;} else if (money >= 200) { // 购物满 200 元,打 7 折;real_money = money * 0.7;} else if (money >= 100) { // 购物满 100 元,打 8 折;real_money = money * 0.8;} else if (money >= 50) { // 购物满 50 元,打 9 折; real_money = money * 0.9;} else {// 不满50 原价real_money = money;}printf("购买金额: %f 实际价格: %f\n", money, real_money);return 0;
}
switch语句
- 测试一个表达式是否等于一些可能的值,并根据表达式的值执行相应的代码块,可以使用switch语言实现
- switch可以支持数据类型:
- int
- 枚举类型
- char类型
- switch和if区别:
- 需要根据布尔条件来执行不同的代码块,则应使用if语句
- 需要根据表达式的值来执行不同的代码块,则应使用switch语句
语法格式:
switch (expression) {case value1:// 代码块1break;case value2:// 代码块2break;default:// 代码块3
}
案例需求:
- 输入int类型的数据,根据结果输出不同的内容
- 输入1:输出Monday
- 输入2:输出Tuesday
- 输入3:输出Wednesday
- 输入4:输出Thursday
- 输入5:输出Friday
- 输入6:输出Saturday
- 输入7:输出Sunday
- 输入其它:输出error
示例代码:
#include <stdio.h>int main() {// 1. 定义变量保存数据int i;// 2. 输入数据printf("请输入1~7的数字:");scanf("%d", &i);// 3. 使用switch根据数据不同输出不同的结果switch (i) {case 1:printf("Monday\n");break;case 2:printf("Tuesday\n");break;case 3:printf("Wednesday\n");break;case 4:printf("Thursday\n");break;case 5:printf("Friday\n");break;case 6:printf("Saturday\n");break;case 7:printf("Sunday\n");break;default:printf("error\n");}return 0;
}
分支综合案例
案例需求:
- 输入:年份(整数)和月份(整数)
- 输出:该月份的天数(整数)
思路分析:
1.定义变量保存年份、月份、天数
2.输入年份和月份
3.根据月份输出天数1、3、5、7、8、10、12月 31天4、6、9、11月 30天2月 非闰年 28天 闰年 29天闰年判断:能被4整除,但不能被100整除的;或者能被400整除的年份
示例代码:
#include <stdio.h>int main() {// 1.定义变量保存年份、月份、天数int year, month, day;// 2.输入年份和月份scanf("%d %d", &year, &month);// 3.根据月份输出天数switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:// 2月 非闰年 28天 闰年 29天// 闰年判断:能被4整除,但不能被100整除的;或者能被400整除的年份if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {day = 29;} else {day = 28;}break;default:day = -1;}printf("%d 年 %d 月 有 %d 天\n", year, month, day);return 0;
}
相关文章:
C语言控制语句——分支语句
条件语句用来根据不同的条件来执行不同的语句,C语言中常用的条件语句包括if语句和switch语句。 if 语句 语法格式: if (条件) {条件成立时,要做的事…… }案例需求: 定义一个整数变量记录年龄判断是否满 18 岁 (>…...
音视频 fmpeg命令裁剪和合并视频
一、生成测试文件 找三个不同的视频每个视频截取10秒内容 ffmpeg -i 沙海02.mp4 -ss 00:05:00 -t 10 -codec copy 1.mp4 ffmpeg -i 复仇者联盟3.mp4 -ss 00:05:00 -t 10 -codec copy 2.mp4 ffmpeg -i 红海行动.mp4 -ss 00:05:00 -t 10 -codec copy 3.mp4如果音视频格式不统一…...
机器学习基础17-基于波士顿房价(Boston House Price)数据集训练模型的整个过程讲解
机器学习是一项经验技能,实践是掌握机器学习、提高利用机器学习 解决问题的能力的有效方法之一。那么如何通过机器学习来解决问题呢? 本节将通过一个实例来一步一步地介绍一个回归问题。 本章主要介绍以下内容: 如何端到端地完成一个回归问题…...
哈希的应用——布隆过滤器
✅<1>主页::我的代码爱吃辣 📃<2>知识讲解:数据结构——位图 ☂️<3>开发环境:Visual Studio 2022 💬<4>前言:布隆过滤器是由布隆(Burton Howard Bloom&…...
LNMT的多机部署和双机热备
目录 一、环境 二、配置tomcat 三、配置nfs共享 四、配置nginx 1、两台都需要折磨配置 2、在http下面插入这两条信息 五、配置keepalived 1、安装 2、重新启动一下keepalived查看IP 六、验证双机热备 1、查看调度器备的IP,ip漂移说明keepalived生效 2、访…...
软件测试/测试开发丨Pytest和Allure报告 学习笔记
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/26755 Pytest 命名规则 类型规则文件test_开头 或者 _test 结尾类Test 开头方法/函数test_开头注意:测试类中不可以添加__init__构造函数 注…...
十七、命令模式
一、什么是命令模式 命令(Command)模式的定义:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 命令…...
服务器安装 anaconda 及 conda: command not found [解决方案]
[解决方案] conda: command not found Anaconda3 安装conda: command not found Anaconda3 安装 由于连接的服务器,无法直接在anaconda官网上下载安装文件,所以使用如下方法: wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Li…...
自动驾驶和辅助驾驶系统的概念性架构(二)
摘要: 本篇为第二部分主要介绍底层计算单元、示例工作负载 前言 本文档参考自动驾驶计算联盟(Autonomous Vehicle Computing Consortium)关于自动驾驶和辅助驾驶计算系统的概念系统架构。该架构旨在与SAE L1-L5级别的自动驾驶保持一致。本文主要介绍包括功能模块图…...
【c++】VC编译出的版本,发布版本如何使用
目录 使用release类型进行发布 应用程序无法正常启动 0xc000007b 版本对应 vcruntime140d 应用版本 参考文章 使用release类型进行发布 应用程序无法正常启动 0xc000007b "应用程序无法正常启动 0xc000007b" 错误通常是一个 Windows 应用程序错误…...
自然语言处理(五):子词嵌入(fastText模型)
子词嵌入 在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西…...
Zabbix“专家坐诊”第202期问答汇总
问题一 Q:请问一下 zabbix 里面怎么能创建出和sh文件有关联的监控项? A: 1.使用 Zabbix Agent 主动模式:如果你在目标主机上安装了 Zabbix Agent,并且想要监控与 sh 文件相关的指标,可以创建一个自定义的…...
【c语言】输出n行按如下规律排列的数
题述:输出n行按如下规律排列的数 输入: 4(应该指的是n) 输出: 思路: 利用下标的规律求解,考察数组下标的灵活应用,我们可以看出数从1开始是斜着往下放的,那么我们如何利用两层for循环求解这道题ÿ…...
023 - STM32学习笔记 - 扩展外部SDRAM(二) - 扩展外部SDRAM实验
023- STM32学习笔记 - 扩展外部SDRAM(一) - 扩展外部SDRAM实验 本节内容中要配置的引脚很多,如果你用的开发板跟我的不一样,请详细参照STM32规格书中说明对相关GPIO引脚进行配置。 先提前对本届内容的变成步骤进行总结如下&…...
机器学习 | Python实现XGBoost极限梯度提升树模型答疑
机器学习 | MATLAB实现XGBoost极限梯度提升树模型答疑 目录 机器学习 | MATLAB实现XGBoost极限梯度提升树模型答疑问题系列问题回答问题系列 关于XGBoost有几个问题想请教一下。1.XGBoost的API有哪些种调用方法?2.参数如何调? 问题回答 XGBoost的API有2种调用方法,一种是我们…...
关于使用远程工具连接mysql数据库时,提示:Public Key Retrieval is not allowed
我在使用DBeaver工具连接 数据库时,提示:Public Key Retrieval is not allowed, 我在前一天还是可以连接的,但是今天突然无法连接了, 但是最后捣鼓了一下又可以了。 具体方法:首先先把mysql服务停了&#x…...
leetcode做题笔记117. 填充每个节点的下一个右侧节点指针 II
给定一个二叉树: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下,所有 next 指针都…...
解决博客不能解析PHP直接下载源码问题
背景: 在网站设置反向代理后,网站突然不能正常访问,而是会直接下载访问文件的PHP源码 解决办法: 由于在搞完反向代理之后,PHP版本变成了纯静态,所以网站不能正常解析;只需要把PHP版本恢复正常…...
voc 转coco
import os import random import shutil import sys import json import glob import xml.etree.ElementTree as ET""" 修改下面3个参数 1.val_files_num : 验证集的数量 2.test_files_num :测试集的数量 3.voc_annotations : voc的annotations路径 …...
【C语言每日一题】03. 对齐输出
题目来源:http://noi.openjudge.cn/ch0101/03/ 03 对齐输出 总时间限制: 1000ms 内存限制: 65536kB 问题描述 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。 输入 只有一行,包含三个整数,整数之间以一…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
