C语言 分支 和 循环语句(上) C语言是一门结构化的程序设计语言。支持三种结构顺序结构、选择结构、循环结构。1. if语句单分支例子 ↓ 任意输入一个整数判断是否为奇数#includestdio.hintmain(){intnum0;scanf(%d,num);//3if(num%21)printf(奇数\n);//3%21,是奇数return0;}if语句 流程图 ~ ~ ~⚠️ if…else例子 一个正整数不是奇数就是偶数 if…else 如下 ↓#includestdio.hintmain(){intnum0;scanf(%d,num);//4if(num%20)printf(%d是偶数\n,num);//4%20 4是偶数elseprintf(%d是奇数\n,num);return0;} 练习1if语句实现输入一个成绩成绩60 就输出拿捏啊否则就输出补考~ 。#includestdio.hintmain(){intscore0;scanf(%d,score);//70if(score60)printf(拿捏啊\n);// 70 60将会输出 拿捏啊elseprintf(补考~\n);return0;}⚠️ 多条语句默认在 if 和 else 语句中都只控制一条语句因此如果想执行多条语句就得添加一个大括号哦示例 ↓2. if 语句多分支✅️ 哪条表达式成立就执行哪条全都不成立就执行 else下面的语句 练习总价“满 50 减 15满 30 减 8满 20 减 5 不满 20元不参与活动。”用 if 语句如何实现#includestdio.hintmain(){inttotal0;scanf(%d,total);//60if(total50)printf(满50减15实际付款%d元\n,total-15);// 60-1545elseif(total30)printf(满30减5实际付款%d元\n,total-5);elseprintf(不满 20元不参与活动。\n);return0;}3. 嵌套 if 语句 练习成绩 85没有挂科没有记过处分有奖学金。其中任意一个条件不满足都不能评奖。请用 if 嵌套 实现#includestdio.hintmain(){intscore0;//成绩intgua_ke0;//gua_ke 为0 代表没有挂科intchu_fen0;//chu_fen 为0 代表没有记过处分scanf(%d,%d,%d,score,gua_ke,chu_fen);//90,0,0if(score85){if(0gua_ke){if(0chu_fen){printf(全部合格有奖学金\n);//运行结果全部合格有奖学金换行}elseprintf(有记过处分无奖学金!\n);}elseprintf(挂科了无奖学金!\n);}elseprintf(成绩低于85分无奖学金\n);return0;}4. 悬空 else 问题#includestdio.hintmain(){inta0;intb2;if(a1)// a0,下面那个else必须与最近的 if 相匹配因此结果为空if(b2)printf(呵呵\n);elseprintf(哈哈\n);return0;} 如果有多个 if 和 else 可以记住这样一条规则else总是与前面最近的、还没有配对的 if 相结合。5. 关系操作符C语言用于比较的表达式称为 “ 关系表达式 ” relational expression里面使用的运算符就称为 “ 关系运算符 ” relational operator主要有下面6个 ↓⚠️ 当判断一个变量是否等于一个常量时把常量放在 的左边是一个好办法 是判断变量与常量是否相等 是赋值运算符切忌不可混淆例如 ↓int n 0; if(n 3) if(3 n) // 编译器会报错因为我们不能把一个变量赋给一个常量 printf(%d\n,n);// if(n 3) 编译器不会报错这也是错误率很高的地方 重点重述 当判断一个变量是否等于一个常量时把常量放在 的左边是一个好办法⚠️ 多个关系运算符不宜连用int i 2; int j 4; int k 3; if(i j k) // 数学思维2 4 3 , 4 3, 因此不打印 printf(呵呵\n); // 编程思维24(为真1) 1 3 ,因此打印 总结在C语言编程判断中0代表假非零代表真而在关系运算符和逻辑运算符中仅用0代表假1代表真。✅️ 正确示范if(i j j k) // 相当于 “ 并且 ” 的意思 printf(呵呵\n); //2 4 并且 4 3 为假因此不打印 “ 呵呵 ”例子 (为真) ↓#includestdio.hintmain(){intr(38);printf(%d\n,r);//1 (为真)return0;}例子 (为假) ↓#includestdio.hintmain(){intr(32);printf(%d\n,r);//0 (为假)return0;}6. 条件操作符条件操作符也叫 三目操作符它需要接受三个数的判断示例如下 ↓ 练习使用 if语句 或 条件表达式 实现找两个数中的最大值。 if语句#includestdio.hintmain(){intnum10;intnum20;intmax0;scanf(%d,%d,num1,num2);//3,4if(num1num2)maxnum1;elsemaxnum2;printf(最大值是%d\n,max);return0;} 条件表达式#includestdio.hintmain(){intnum10;intnum20;intmax0;scanf(%d,%d,num1,num2);//3,4max(num1num2)?num1:num2;printf(最大值是%d\n,max);return0;}7. 逻辑运算符 || ① 逻辑与运算符【并且】规则同时为真才为真其余为假。练习 月份是 3月到5月 是春天请用逻辑与运算符来实现本程序。#includestdio.hintmain(){intmonth0;scanf(%d,month);//3if(month3month5)printf(春天\n);//打印春天换行return0;}② ||逻辑或运算符【或者】规则同假为假其余为真。只要有一个为真那便是真练习 一年中月份是 12月 或者 1月 或者 2月 是冬天用逻辑或运算符来实现本程序。#includestdio.hintmain(){intmonth0;scanf(%d,month);//12if(12month||1month||2month)printf(冬天\n);//输出结果换行return0;}难度提升输入一个年份 year 判断 year 是否是闰年闰年判断规则① 能被 4 整除 并且 不能被 100 整除的是闰年 ② 能被 400 整除的也是闰年#includestdio.hintmain(){intyear0;scanf(%d,year);//2008if((year%40)(year%100!0)||(year%4000))printf(%d是闰年\n,year);elseprintf(%d是平年\n,year);return0;}8. 短路C语言的逻辑运算符还有一个特点它总是先对左侧的表达式求值再对右侧的表达式求值这个顺序是保证的。如果左侧的表达式满足逻辑运算符的条件就不再对右侧的表达式求值这种情况称为 “ 短路 ”。示例如下 ↓⚠️ 像这种仅仅根据左操作数的结果就能知道整个表达式的结果不再对右操作数进行计算的运算 称为 短路求值 。例子 ↓① 重难点#includestdio.hintmain(){inti0,a0,b2,c3,d4;iabc;// ① 先从左往右算a 0 a 1;② a 已经是 0那么后面就不需要计算了i 0 , bc的值还是原先那样不变printf(%d,%d,%d,%d\n,a,b,c,d);// 1,2,3,4return0;}② || 重难点#includestdio.hintmain(){inti0,a1,b2,c3,d4;ia||b||c;//① 还是先从左往右运算a 1 (为真) 后面就不需要计算了因为这是逻辑或运算符只要有一个为真则为真。printf(%d,%d,%d,%d\n,a,b,c,d);//2,2,3,4return0;} 今日份最后一个 task 游戏中同时持有 “ 钥匙 ” 并且 血量 30% 或者被诅咒了。才能进入隐藏空间否则输出无权限资格。代码实现#includestdio.hintmain(){inthas_key1;//1 代表有钥匙intxue_liang25;//血量intzu_zhou0;//0 代表没被诅咒 1代表被诅咒了if((1has_keyxue_liang30)||(zu_zhou1))// (两者满足其一即可){printf(允许进入隐藏空间\n);;}elseprintf(无权限资格\n);//输出换行return0;}⭐ 新鲜出炉的小任务大家快动手试试吧

相关新闻

最新新闻

Snap7实战:C++实现西门子PLC通信的轻量方案

Snap7实战:C++实现西门子PLC通信的轻量方案

简介:面向C开发者的Snap7通信库资源,专用于PC与西门子S7系列PLC之间的网络通信,支持TCP/IP协议,可在Windows、Linux及嵌入式环境中使用,提供读写输入/输出、调用功能块、传输大块数据等能力,解决工业自动化…

2026/9/2 7:33:10
Qt/QML现代化UI开发:集成Shadcn风格SWB-QML-UI控件库实战指南

Qt/QML现代化UI开发:集成Shadcn风格SWB-QML-UI控件库实战指南

在实际 Qt/QML 项目开发中,我们常常面临一个矛盾:一方面,QML 的声明式语法和强大的数据绑定能力,让我们能够快速构建出功能丰富的用户界面;另一方面,原生 Qt Quick Controls 2 的视觉风格相对传统&#xff…

2026/9/2 7:33:10
STM32+4G+WiFi实现物联网设备远程无线配置服务器地址

STM32+4G+WiFi实现物联网设备远程无线配置服务器地址

简介:本资源是一套面向物联网嵌入式开发者的STM32F103单片机实战工程,聚焦于通过ESP8266 WiFi模块远程配置EC800-4G模块的目标服务器IP与端口,解决多网络模组协同通信中的参数动态下发难题,适用于智能终端、远程数据采集等典型物联…

2026/9/2 7:33:10
为Claude Agent构建Mnemara内存层:解决大模型多轮对话失忆问题

为Claude Agent构建Mnemara内存层:解决大模型多轮对话失忆问题

在实际开发基于 Claude 或类似大语言模型的智能体(Agent)应用时,一个核心的工程挑战是如何让 Agent 在多次对话或执行过程中“记住”上下文。很多开发者会发现,一个看似聪明的 Agent 在回答完一个问题后,面对后续的提问…

2026/9/2 7:33:10
OFDM物理层最小闭环设计:QPSK、导频与AWGN全链路实践

OFDM物理层最小闭环设计:QPSK、导频与AWGN全链路实践

简介:本资源是一套面向通信工程专业本科生与初学者的OFDM系统MATLAB仿真代码,聚焦QPSK调制、导频插入与AWGN信道下的性能分析,适用于课程设计、实验教学及无线通信原理理解。压缩包共2个文件(1个核心MATLAB脚本1个来源说明文本&am…

2026/9/2 7:33:10
NVIDIA Magpie TTS 开源语音合成方案:从零部署到服务化实战指南

NVIDIA Magpie TTS 开源语音合成方案:从零部署到服务化实战指南

1. 先搞清楚 Magpie TTS 到底解决了什么实际问题 如果你正在找一套能自己部署、延迟低、支持多语言的语音合成方案,特别是想用它来构建语音助手、客服机器人或者交互式应用,那 NVIDIA 开源的 Magpie TTS 就值得你花时间研究一下。它不是又一个只能在线调…

2026/9/2 7:28:10