C语言 流程控制语句

时间:2024.11.5

一、学习内容

流程控制语句:

通过一些语句,控制程序的执行流程。

1、顺序结构

从上往下依次执行,是程序默认的执行过程。

2、if的第一种格式

 

if(关系表达式)
{
语句体;
}
//考试奖励:
//小明在吃苹果,如果苹果中虫子的数量大于等于1,小明就会扔掉苹果
#include <stdio.h>
int main(){
int n;
scanf("%d\n",&n);
if(n>=1)
{ printf("请扔掉苹果");
}
return 0;
}

 

3、if的第二种格式

 

if(关系表达式)
{
语句体A;
}
else
{
语句体B;
}

4、第二种格式的练习

#include<stdio.h>
int main(){
int n;
if(n>=60)
{
printf("同意表白");
}
else{
printf("不同意表白,请向其他人表白");
}
return 0;
}
/*需求:
我和小诗诗一起去看电影
如果在一排连着坐,我会很开心地看电影
如果不是在一排或者没有连着坐,我会开心地打游戏*/#include<stdio.h>
int main(){
int m=5,n=6,a=6,b=7;if((m==a)&&(m==a-1||m==a+1))
{
printf("开心地看电影");
}
else{
printf("开心地打游戏");
}
return 0;
}

5、if的第三种格式

 

 

 

 

#include<stdio.h>
int main(){
int rank,money;
scanf("%d\n",&money);
if(money>=1&&money<=99)
{
printf("尊贵的VIP1");
}
else if(money>=100&&money<=499)
{
printf("尊贵的VIP2");
}
else if(money>=500&&money<=999)
{
printf("尊贵的VIP3");
}
else  if(money>=1000&&money<=1999)
{
printf("尊贵的VIP4");
}
else if(money>=2000&&money<=5000)
{
printf("顶级的VIP5");
}
return 0;
}

6、第三种格式的练习 

 

#include<stdio.h>
int main(){
int s;
scanf("%d\n",&s);
if(s>=85&&s<=100)
{
printf("A");
}
else if(s>=70&&s<=84)
{
printf("B");
}
else if(s>=60&&s<=69)
{
printf("C");
}
else  
{
printf("D");
}
return 0;
}

7、switch语句

作用:把所有的选择一一列举出来,根据不同的条件任选其一

 

 

#include<stdio.h>
int main(){
int d;
scanf("%d\n",&d);
switch(d)
{
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;
default:
printf("没有这个星期");
break;}
return 0;
}

8、switch语句的细节

 

9、case穿透

case穿透的规则:
1.还是根据小括号中表达式的结果去匹配对应的case
2.执行对应case里面的代码
3.如果在执行过程中,遇到了break,那么直接结束整个switch但是如果没有遇到break,就会继续执行下面case中的代码,直到遇到break,或者把整个switch中所有的代码全部执行完了,才会结束
4.细节:case穿透只会向下穿,不会回到上面
#include<stdio.h>
int main(){
int d;
scanf("%d\n",&d);
switch(d)
{
case 1:
printf("当前数字是1\n");
break;
case 2:
printf("当前数字是2\n");
break;default:
printf("当前数字是其他\n");
break;}
return 0;
}#include<stdio.h>
int main(){
int d;
scanf("%d\n",&d);
switch(d)
{
case 1:
printf("当前数字是1\n");
break;
case 2:
printf("当前数字是2\n");
//break;default:
printf("当前数字是其他\n");
break;}
return 0;
}

 

#include<stdio.h>
int main(){
int d;
printf("请输入当前月份:\n");
scanf("%d\n",&d);
switch(d)
{
case 3:
printf("春季\n");
break;
case 4:
printf("春季\n");
break;
case 5:
printf("春季\n");
break;case 6:
printf("夏季\n");
break;
case 7:
printf("夏季\n");
break;
case 8:
printf("夏季\n");
break;case 9:
printf("秋季\n");
break;
case 10:
printf("秋季\n");
break;
case 11:
printf("秋季\n");
break;case 12:
printf("冬季\n");
break;
case 1:
printf("冬季\n");
break;
case 2:
printf("冬季\n");
break;default:
printf("没有这个月份\n");
break;}
return 0;
}

 case穿透进行简化后:

#include<stdio.h>
int main(){
int d;
printf("请输入当前月份:\n");
scanf("%d\n",&d);
switch(d)
{
case 3:
case 4:
case 5:
printf("春季\n");
break;case 6:
case 7:
case 8:
printf("夏季\n");
break;case 9:
case 10:
case 11:
printf("秋季\n");
break;case 12:
case 1:
case 2:
printf("冬季\n");
break;default:
printf("没有这个月份\n");
break;}
return 0;
}

#include<stdio.h>
int main(){
int d;
printf("请选择服务:\n");
scanf("%d\n",&d);
switch(d)
{
case 1:
printf("机票查询\n");
break;case 2:
printf("机票预订\n");
break;case 3:
printf("机票改签\n");
break;case 4:
printf("退出服务\n");
break;default:
printf("退出服务\n");
break;}
return 0;
}

 

10、for循环的基本格式

循环:重复的执行某件事情。

11、for循环的执行流程

 

 

12、while循环

 

13、for和while的区别

 

14、do...while

二、练习

技巧:
1.循环的开始条件
2.循环的结束条件
3.要重复执行的事情
4.每次循环结束之后,变量i如何改变 i++

1、练习1-正向和反向打印数字

#include<stdio.h>
int main()
{
for(int i=1;i<6;i++)
{
printf("%d\n",i);
}for(int j=5;i>0;j--)
{
printf("%d\n",j);
}return 0;
}

 

2、练习2-累加求和

#include<stdio.h>
int main()
{
int sum=0;
for(int i=1;i<6;i++)
{
sum+=i;
}printf("sum=%d\n",sum);return 0;
}

 

3、练习2的细节分析

变量的生命周期:

变量只在所属的大括号中有效

如果每次循环都是操作同一个变量,比如说:累加,变量必须定义在外面;

如果每次循环都是操作一个全新的变量,变量可以定义在循环的里面。

4、练习3-求偶数和

#include<stdio.h>
int main()
{
int sum=0;
for(int i=0;i<=100; )
{
i+=2;
sum+=i;
}printf("sum=%d\n",sum);return 0;
}

#include<stdio.h>
int main()
{
int sum=0;
for(int i=1;i<101;i++)
{
if(i%2==0){
sum+=i;}
}printf("sum=%d\n",sum);return 0;
}

5、练习3-统计思想

统计思想:

定义一个变量,在合适的时候自增即可

 

#include<stdio.h>
int main()
{
int count=0;
int m,n,c,d;
scanf("%d %d",&m,&n);
d=m>n?m:n;
c=m<n?m:n;
for(int i=c;i<=d;i++)
{
if((i%6==0)&&(i%8==0)){
count++;}
}printf("count=%d\n",count);return 0;
}

6、循环算法题1-2的次幂

1.思考循环结束的条件是什么
2.while后的小括号里写的是:什么情况下,循环可以继续进行,跟上面的推断是反过来的

 

#include<stdio.h>
int main()
{int n;
scanf("%d",&n);while((n>1)&&(n%2==0))
{
n/=2;
}
if(n==1){
printf("yes\n");
}else{
printf("no\n");
}
return 0;
}

7、循环算法题2-折纸问题

 

#include<stdio.h>
int main()
{float n=0.1;int count =0;
while(n<=8844430.0)
{
n*=2.0;
count++;
}printf("%d\n",count);return 0;
}

8、循环算法题3-整数反转

 

#include<stdio.h>
int main()
{int n,f;
scanf("%d\n",&n);
int a,b,c;
a=n/100;
b=n/10%10;
c=n%100;
f=a+b*10+c*100;printf("%d\n",f);return 0;
}

9、循环算法题4-平方根

 

 

10、循环算法题4和5-回文数和除法计算

 

#include <stdio.h> 
#include<string.h>              //strlen函数的头文件 int main() 
{ int n; char a[999],b[999]; printf("Please input string: ");scanf("%s",a);                  //输入字符串 n=strlen(a);                    //用strlen函数读取字符串长度(长度到\0停止) int i,j;for(i=0,j=n-1;i<n;i++,j--)      //循环将字符串a逆序赋值给b b[j]=a[i];for(i=0;i<n;i++) { if(b[i]!=a[i]) break;                             //判断是否是回文数 } if(i==n) printf("是一个回文数!\n");     //如果从第1位到n都相同 则输出回文数 else printf("不是一个回文数!\n"); return 0; 
}

#include<stdio.h>
int main()
{int m,n;
scanf("%d %d",&m,&n);int c=0;
int y;
do{
y=m-n;
c++;}while(y>=n);printf("%d\n",c);
printf("%d\n",y);
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

03集合基础

目录 1.集合 Collection Map 常用集合 List 接口及其实现 Set 接口及其实现 Map 接口及其实现 Queue 接口及其实现 Deque 接口及其实现 Stack类 并发集合类 工具类 2.ArrayList 3.LinkedList 单向链表的实现 1. 节点类&#xff08;Node&#xff09; 2. 链表类&a…

HTMLCSS:3D 旋转卡片的炫酷动画

效果演示 这段代码是一个HTML和CSS的组合&#xff0c;用于创建一个具有3D效果的动画卡片。 HTML <div class"obj"><div class"objchild"><span class"inn6"><h3 class"text">我是谁&#xff1f;我在那<…

网络自动化03:简单解释send_config_set方法并举例

目录 拓扑图设备信息 netmiko涉及方法send_config_set()方法的简单示例代码输出结果代码解释导入模块配置信息config_device_interface_description 函数主程序块总结 send_config_set方法参数&#xff1a;1. enter_config_mode2. config_commands3. enter_config_mode4. error…

什么是实验室信息(lis)系统?

医院LIS系统定义&#xff1a; 医院LIS系统&#xff0c;即实验室信息系统&#xff08;Laboratory Information System&#xff09;&#xff0c;是专为医院检验科设计的信息管理系统。它通过计算机网络技术实现实验仪器与计算机的联网&#xff0c;智能化、自动化地管理病人样品登…

MySQL45讲 第十六讲 “order by”是怎么工作的?

文章目录 MySQL45讲 第十六讲 “order by”是怎么工作的&#xff1f;一、引言二、全字段排序&#xff08;一&#xff09;索引创建与执行情况分析&#xff08;二&#xff09;执行流程&#xff08;三&#xff09;查看是否使用临时文件 三、rowid 排序&#xff08;一&#xff09;参…

网页版五子棋—— WebSocket 协议

目录 前言 一、背景介绍 二、原理解析 1.连接过程&#xff08;握手&#xff09; 2.报文格式 三、代码示例 1.服务端代码 &#xff08;1&#xff09;TestAPI 类 &#xff08;2&#xff09;WebSocketConfig 类 2.客户端代码 3.代码演示 结尾 前言 从本篇文章开始&am…

【综合案例】使用React编写B站评论案例

一、效果展示 默认效果&#xff0c;一开始默认按照最热进行排序 发布了一条评论 按照最新进行排序 按照最新进行排序 二、效果说明 页面上默认有3条评论&#xff0c;且一开始进入页面的时候是按照点赞数量进行倒序排列展示&#xff0c;可以点击【最热 、最新】进行排序的切换。…

docker镜像文件导出导入

1. 导出容器&#xff08;包含内部服务&#xff09;为镜像文件&#xff08;docker commit方法&#xff09; 原理&#xff1a;docker commit命令允许你将一个容器的当前状态保存为一个新的镜像。这个新镜像将包含容器内所有的文件系统更改&#xff0c;包括安装的软件、配置文件等…

区块链技术与应用-PKU 学习笔记

课程地址 资料&#xff1a; ETH-Security 区块链学习记录_比特币 BTC 密码学原理 比特币&#xff0c;又称加密货币(crypto-currency)&#xff0c;它主要利用了密码学中的哈希函数(cryptographic hash function)的抗碰撞特性(collision resistance)和单向散列特性(hiding) …

在Java中,实现数据库连接通常使用JDBC

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

【优选算法 — 双指针】双指针小专题

和为 s 的两个数 和为s的两个数 题目描述 解法一&#xff1a;暴力枚举 暴力枚举&#xff0c;先固定一个数&#xff0c;然后让这个数和另一个数匹配相加&#xff0c; 如果当前的数 所有剩余的数 target&#xff0c;则返回这两个数&#xff0c;否则固定下一个数&#…

并查集(基础学习与应用)

并查集 基本原理&#xff1a; 对于多个集合&#xff0c;每个集合中的多个元素用一颗树的形式表示&#xff0c;根节点的编号即为整个集合的编号&#xff0c;每个树上节点存储其父节点&#xff0c;使得当前集合的每个子节点都可以通过对父节点的询问来找到根节点&#xff0c;根…

003-Kotlin界面开发之声明式编程范式

概念本源 在界面程序开发中&#xff0c;有两个非常典型的编程范式&#xff1a;命令式编程和声明式编程。命令式编程是指通过编写一系列命令来描述程序的运行逻辑&#xff0c;而声明式编程则是通过编写一系列声明来描述程序的状态。在命令式编程中&#xff0c;程序员需要关心程…

Spring Boot 与 Vue 共筑地方特色美食分享卓越平台

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 &#x1f345;获取源码联系方式请查看文末&#x1f345; 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目…

react使用Fullcalendar 实战用法

使用步骤请参考&#xff1a;react使用Fullcalendar 卡片式的日历&#xff1a; 需求图&#xff1a; 卡片式的日历&#xff0c;其实我是推荐 antd的&#xff0c;我两个都写了一下都能实现。 antd 的代码&#xff1a; antd的我直接用的官网示例&#xff1a;antd 日历示例 i…

Flutter 正在切换成 Monorepo 和支持 workspaces

其实关于 Monorepo 和 workspaces 相关内容在之前《Dart 3.5 发布&#xff0c;全新 Dart Roadmap Update》 和 《Flutter 之 ftcon24usa 大会&#xff0c;创始人分享 Flutter 十年发展史》 就有简单提到过&#xff0c;而目前来说刚好看到 flaux 这个新进展&#xff0c;所以就再…

在做题中学习(74):比较含退格的字符串

解法&#xff1a;用栈来模拟 思路&#xff1a;不用真的定义一个栈,用字符串string来模拟栈的行为 入栈&#xff1a;s[i] ! #时 push_back(s[i]) 出栈:s[i] # 的时候&#xff0c;并且s.size() > 0&#xff0c;pop_back(s[i])循环结束得到结果 注意&#xff1a;如果真的…

前后端交互通用排序策略

目录 排序场景 排序实现思路 1. 静态代码排序实现 2.数据库驱动排序实现 3. 基于Java反射的动态排序实现 通用排序工具 SortListUtil 结语 排序场景 在面向前端数据展示的应用场景中&#xff0c;我们旨在实现一个更加灵活的排序机制&#xff0c;该机制能够支持对从后端传递…

MD5(Crypto)

解题思路 打开文件发现一串代码&#xff0c;结合题目提示&#xff0c;应该是 MD5 加密。 找个在线的 MD5 解密网站&#xff0c;行云流水得到 flag。 题目设计原理 题目设计&#xff1a;无他&#xff0c;MD5 加密。 题目原理&#xff1a; MD5&#xff08;Message-Digest Algo…

跟李沐学AI:BERT

什么是NLP中的迁移学习 使用预训练好的模型来抽取词、句子的特征&#xff1a;Word2Vec或者预训练好的语言模型。 使用预训练好的语言模型&#xff0c;一般不会再对语言模型进行微调&#xff0c;即不进行更新。 Word2Vec一般用于替代embedding层 但是Word2Vec往往忽略了时序…