C语言程序设计——程序流程控制方法(二)

循环结构

while语句

while(表达式){
	代码块;
}

do{
	代码块;
}while(表达式)

while语句分为do-while和while两种,区别在于循环之前是不是先执行一次循环的内容,可以类似于++i和i++的关系,本质上来讲是相同的。当表达式为真时,则会执行一次代码块,然后继续进行循环条件判断,重复此过程,一直到表达式为假,则跳出循环
在循环读入的写法有频繁的使用while语句,也可以看出while语句的适用场景,就是适合没有确切循环次数的循环

使用while循环实现程序,输出1--100#include<stdio.h>
int main(){
	int i = 1;
	do{
		printf("%d ", i);
		if(i % 10 == 0){
			printf("\n")
		}
	}while(i++ < 100)
}

在这里插入图片描述

FOR语句

for(初始化;循环条件;执行后操作){
	代码块;
}

for循环相较于while循环最大的区别就是,他是有明确的循环次数的循环语句,可以注意到for循环中的有三条控制语句,其中可以省略任意数量的语句,都可使程序运行。

适用for循环实现程序,输出1--100#include<stdio.h>
int main(){
	for(int i = 0; i <= 100; i++){
		printf("%d ",i);
		if(i % 10 == 0){
			printf("\n");
		}
	}
}

break和continue

break:程序运行到此行代码时终止循环;
continue:程序运行到慈航代码时跳过这次循环,进行下一次循环判断

短路原则

在刚才我们提到了i++与++i,我们用代码简单演示一下,二者的区别。
在这里插入图片描述
在这里插入图片描述
可以看到不论i++还是++i都是进行了加1的操作,但区别是i++是先进行对变量的访问,然后才是进行加1操作,而++i则是先进行加1操作,之后进行变量访问。

了解二者区别之后我们再看下面的判断语句与输出情况
在这里插入图片描述
按照正常情况下应该是if语句中在条件判断先进行判断,而后因为a是先访问变量是0,而后加1,b是先加1然后访问变量,a = 0, b = 1,所以应该打印F,然后a = 1, b = 1;在这里插入图片描述
但是我们可以看到输出结果与我们预想的结果有出入,b打印出了0,也就是说++b的操作并没有被运行。这就是短路原则。我们再把逻辑"与"换成“逻辑非”看一下运行结果
在这里插入图片描述可以看到这一次依旧是没有执行++b的操作

短路原则
当用逻辑与链接多个表达式,若当前判断已经可以确定结果,则不再运行后面的代码
逻辑与:当出现的情况出现,则不运行后面的代码
逻辑非:当出现的情况出现,则不运行后面的代码

短路原则一个简单的应用就是可以解决输出格式问题,我们在一些网站刷题的时候,多个输出的时候需要用空格间隔,但是最后一个输出后面不能有空格,这种情况我们往往会用特判的方式来解决。现在我们可以用短路原则来解决这个问题。在代码,为了观察方便我把空格换成了逗号。
在这里插入图片描述

判断奇数个数

那么根据以上内容简单写一个程序,用来判断奇数个数

思路
根据我们输入的整数,让电脑随机生成指定个数的随机数(1~100)然后,然后对每一个随机数进行逐一判断,最后返回奇数的个数。最后应输出生成的随机数中间应该用空格隔开,然后再打印出判断结果即随机数中奇数的数量

首先是随机数,我们需要引入一个头文件<stdlib.h>里面的rand()函数可以生成一个随机数,但是它是一个伪随机数,所以我们还需要一个种子,引入一个<time.h>,以时间作为种子,这样可以保证它不断的变化。生成一个1~100的随机数,则对rand()对100取余即可

然后我们可以用if来进行特判,定义一个count变量接收,如果为奇数则加1,然后我们可以优化一下,用当前随机数ans&1来代替if的特判语句。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常用的排序算法

该文章笔记结合菜鸟教程的排序算法&#xff0c;如果后面认识有改动或者完善再继续 最近笔试很多题目都考察过了基本的排序算法&#xff0c;尤其是快排、冒泡、选择&#xff0c;大家在这一方面一定要注意下。 一. 总述 1. 时间复杂度 详细介绍 1. 冒泡排序 冒泡排序重复地走…

大白菜U盘安装系统-戴尔电脑

1. 把U盘插入电脑&#xff0c;启动盘去大白菜官网找&#xff0c;镜像可以去微软官网下&#xff0c;想要专业版的网上找资源。 2. 重启电脑&#xff0c;等出现log之后狂按F12&#xff0c;进入BOSS模式。 3. 选择UEFI...也就是下面白色的&#xff0c;按下回车。 4. 选第一个 5.…

生成学习全景:从基础理论到GANs技术实战

本文全面探讨了生成学习的理论与实践&#xff0c;包括对生成学习与判别学习的比较、详细解析GANs、VAEs及自回归模型的工作原理与结构&#xff0c;并通过实战案例展示了GAN模型在PyTorch中的实现。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产…

基于java的SSM框架实现在线投稿网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现在线投稿网站系统演示 摘要 随着计算机技术的飞速发展&#xff0c;稿件也已进入信息化时代。为了使稿件管理更高效、更科学&#xff0c;决定开发投稿审稿系统。 本文采用自顶向下的结构化的系统分析方法&#xff0c;阐述了一个功能全面的投稿审稿系统…

Open3D 两片点云的最小/最大距离(23)

Open3D 两片点云的最小/最大距离(23) 一、效果展示二、使用步骤1.代码三、cloudcompare量距小工具一、效果展示 算法与实际量测的结果保持一致,输出最近距离和对应点 二、使用步骤 1.代码 import open3d as o3d import numpy as np# 读取点云数据 cloud_2 = o3d.io.re…

性能瓶颈分析定位

用vmstat、sar、iostat检测是否是CPU瓶颈 用free、vmstat检测是否是内存瓶颈 用iostat、dmesg 检测是否是磁盘I/O瓶颈 用netstat检测是否是网络带宽瓶颈 1 首先进行OS层面的检查确认 首先要确认当前到底是哪些进程引起的负载高&#xff0c;以及这些进程卡在什么地方&#x…

软件需求分析报告—word

技术要求 1.1接口要求 1.2可靠性&#xff0c;稳定性&#xff0c;安全性&#xff0c;先进性&#xff0c;拓展性&#xff0c;性能&#xff0c;响应。 2.系统安全需求 2.1物理设计安全 2.2系统安全设计 2.3网络安全设计 2.4应用安全设计 2.5用户安全管理 进主页获取更多资料

目前目标跟踪算法研究202308

目标跟踪算法综述——附各算法源码和论文 概述 TBD&#xff08;two-shot&#xff09;&#xff1a;SORT、DeepSORT、StrongSORT、ByteTrack、OC-SORT JDE&#xff08;one-shot&#xff09;&#xff1a;BoT-SORT、 0 MutiSORT(多目标跟踪策略) 0.1 trackdetection 训练一个网…

Java基础语法

1.第一份程序 1.1.代码编写 /*块注释 HelloWord.java 内部 *//**文档注释 * 作者&#xff1a;limou3434 */ public class HelloWord {public static void main(String[] args){System.out.println("Hello Word!");//打印“Hello Word!”} }直接上代码&#xff0c;上…

工具篇--SpringCloud--openFeign--Feign.builder()自定义客户端

文章目录 前言一、自定义客户端&#xff1a;1.1 定义外部接口类&#xff1a;1.2 接口代理类生成&#xff1a;1.3 方法的远程调用&#xff1a; 二、Feign.builder()自定义客户端原理&#xff1a;2.1 FeignClientFactoryBean2.2 客户端的配置设置&#xff1a;2.3 代理类的生成&am…

【GitHub项目推荐--AI 开源项目/涵盖 OCR、人脸检测、NLP、语音合成多方向】【转载】

今天为大家推荐一个相当牛逼的AI开源项目&#xff0c;当前 Star 3.4k&#xff0c;但是大胆预判&#xff0c;这个项目肯定要火&#xff0c;未来 Star 数应该可以到 10k 甚至 20k&#xff01; 着急的&#xff0c;可以到 GitHub 直接去看源码 传送门&#xff1a;https://github.c…

GNSS差分码偏差(DCB)原理学习与数据下载地址

一、DCB原理 GNSS差分码偏差&#xff08;DCB&#xff0c;Differential Code Bias&#xff09;是由不同类型的GNSS信号在卫星和接收机不同通道产生的时间延迟&#xff08;硬件延迟/码偏差&#xff09;差异&#xff0c;按照频率相同或者不同又可以细分为频内偏差&#xff08;例如…

电子电器架构车载软件 —— 集中化架构软件开发

电子电器架构车载软件 —— 集中化架构软件开发 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任…

好物周刊#36:程序员简历

村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. SmartDNS 一个运行在本地的 DNS 服务器&#xff0c;它接受来自本地客户端的 DNS 查询请求&#xff0c;然后从多个上游 DNS 服务器获取 DNS 查询…

从零开始复现BERT,并进行预训练和微调

从零开始复现BERT 代码地址&#xff1a;https://gitee.com/guojialiang2023/bert 模型 BERT 是一种基于 Transformer 架构的大型预训练模型&#xff0c;它通过学习大量文本数据来理解语言的深层次结构和含义&#xff0c;从而在各种 NLP 任务中实现卓越的性能。 核心的 BER…

InseRF: 文字驱动的神经3D场景中的生成对象插入

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

基于特征选择和机器学习的酒店客户流失预测和画像分析

基于特征选择和机器学习的酒店客户流失预测和画像分析 基于特征选择和机器学习的酒店客户流失预测和画像分析摘要1. 业务理解2. 数据理解和处理2.1 特征理解2.2 数据基本情况2.3 特征相关性分析 3. 酒店客户流失预测模型构建和评估3.1 支持向量机3.2 K-means聚类用户画像构建 4…

ssh协议以及操作流程

ssh协议 1.是一种安全通道协议 2.对通信数据进行了加密处理&#xff0c;用于远程管理 3.对数据进行压缩 在日常生活中&#xff0c;我们使用的是openssh openssh 服务名称&#xff1a;sshd 服务端主程序&#xff1a;/usr/sbin/sshd 服务端配置文件&#xff1a;/etc/ssh/sshd_con…

pytorch一致数据增强—异用增强

前作 [1] 介绍了一种用 pytorch 模仿 MONAI 实现多幅图&#xff08;如&#xff1a;image 与 label&#xff09;同用 random seed 保证一致变换的写法&#xff0c;核心是 MultiCompose 类和 to_multi 包装函数。不过 [1] 没考虑不同图用不同 augmentation 的情况&#xff0c;如&…

《工具录》dig

工具录 1&#xff1a;dig2&#xff1a;选项介绍3&#xff1a;示例4&#xff1a;其他 本文以 kali-linux-2023.2-vmware-amd64 为例。 1&#xff1a;dig dig 是域名系统&#xff08;DNS&#xff09;查询工具&#xff0c;常用于域名解析和网络故障排除。比 nslookup 有更强大的功…
最新文章