###C语言程序设计-----C语言学习(6)#
前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。
一. 主干知识的学习
1. while语句
除了for语句以外,while语句也用于实现循环,而且它的适用面更广,其一般形式为:
while(表达式)
循环体语句
while语句的执行流程:当表达式的值为‘真’时,循环执行,直到表达式的值为‘假’,循环中止并继续执行while的下一条语句。
下面是while语句和for语句的流程对比图:
注意:for语句和while语句均能实现循环。但一般情况下,如果题目中指定了循环的次数,使用for语句更加清晰,循环的4个组成部分一目了然;其他情况一般使用while语句。
2.do-while语句
do-while语句与上述两种循环语句略有不同,它先执行循环体,后判断循环条件。所以无论循环条件的值如何,至少会执行一次。其一般形式为:
do{
循环体语句
}while(表达式);
执行流程:第一次进入循环时,首先执行循环体语句,然后再检查循环控制条件,即计算表达式,若值为‘真’,继续循环,直到表达式的值为‘假’,循环结束,执行下一条语句。
do-while语句的流程图:

3.break语句
break语句强制循环结束,for循环中的break语句的执行流程如下图,一旦执行了break语句,循环提前结束,不再执行循环体中位于其后的其他语句。
for结构中break的作用:
4.continue语句
continue语句的作用是跳出循环体中continue后面的语句,继续下一次循环,其工作流程如图:
注意:continue语句与break语句的区别在于,break结束循环,而continue只是跳过后面语句继续循环。break除了可以中止循环外,还用于switch语句,而continue只能用于循环。
二. 具体问题中的应用
问题1:用格雷戈里公式求给定度的“值。使用格雷戈里公式求 的近似值,要求精确到最后一项的绝对值小于给定精度 eps。
丌/4=1-1/3+1/5-1/7+·····
源程序:
#include <stdio.h>
#include <math.h> //用于调用绝对值函数fabs()
int main()
{int denominator,flag,i;double eps,item,pi; //pi用于存放累加和 printf("Enter eps:"); //输入所需精度 scanf("%lf", &eps);i=1; //i表示项数 flag=1; //flag用于改变符号 denominator=1; //denominator表示第i项分母 item=1.0; //item为第i项的值 pi=0;while(fabs(item)>=eps) //循环条件 {pi=pi+item; //逐项累加 i++;flag=-flag;denominator=denominator+2;item=flag*1.0/denominator;}pi=pi+item; //加上最后一项的值 pi=pi*4; //最终结果 printf("pi=%.6f\n", pi); //保留6位小数 printf("i=%d\n", i); //输出项数 return 0;}
注意:这里第i项用变量item表示,一旦某一项的绝对值小于eps,就达到了所给的精度,由于最后一项的绝对值小于eps,所以最后还需要加上最后一项的值。
问题2:统计一个整数的位数。从键盘读入一个整数,统计该数的位数。例如,输入12534,输出5;输入-99,输出2;输入0,输出1。
源程序:
#include <stdio.h>
int main()
{int count,number,t_number; //count记录整数number的位数 count=0;printf("Enter a number:");scanf("%d", &number);t_number=number; //保护输入数据不被改变 if (number<0){t_number=-t_number; //将输入的负数转换为正数 }do{count++; t_number=t_number/10; //整除后减少一个个位数,组成一个新数 }while(t_number!=0); //循环条件,控制循环的结束 printf("It contains %d digits.\n", count);return 0;}
问题3:判断一个整数是否为素数。输人一个正整数 m,判断它是否为素数。素数就是只能被 1和自身整除的正整数,1 不是素数,2 是素数。
源程序:
#include <stdio.h>
#include <math.h>
int main()
{int i,limit,m;printf("Enter a number:");scanf("%d", &m);if (m<=1) //小于等于1的不是素数 {printf("No!\n");}else if (m==2) //2是素数 {printf("%d is a prime number!\n", m);}else{limit=sqrt(m)+1;for (i=2; i<=limit; i++){if (m%i==0) //若m能被某个i整除,则m不是素数 {break;}}if (i>limit) //循环结束,说明m不能被任何一个i整除 {printf("%d is a prime number!\n", m);}else {printf("No!\n"); }}return 0;}
感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。
相关文章:
###C语言程序设计-----C语言学习(6)#
前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。 一. 主干知识的学习 1. while语句 除了for语句以外,while语句也用于实现循环,而且它…...
Hadoop3.x源码解析
文章目录 一、RPC通信原理解析1、概要2、代码demo 二、NameNode启动源码解析1、概述2、启动9870端口服务3、加载镜像文件和编辑日志4、初始化NN的RPC服务端5、NN启动资源检查6、NN对心跳超时判断7、安全模式 三、DataNode启动源码解析1、概述2、初始化DataXceiverServer3、初始…...
基于vue实现待办清单案例
一、需求 新增内容; 删除内容; 统计操作; 清空数据。 示例图: 二、代码演示 1、基础准备 index.css代码 html, body {margin: 0;padding: 0; } body {background: #fff ; } button {margin: 0;padding: 0;border: 0;backgr…...
应急响应-流量分析
在应急响应中,有时需要用到流量分析工具,。当需要看到内部流量的具体情况时,就需要我们对网络通信进行抓包,并对数据包进行过滤分析,最常用的工具是Wireshark。 Wireshark是一个网络封包分析软件。网络封包分析软件的…...
计算机网络·网络层
网络层 网络层提供的两种服务 争论: 网络层应该向运输层提供怎样的服务?面向连接还是无连接? 在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 2 种观点: 面向连接的可靠交付。 无连…...
2024/1/28周报
文章目录 摘要Abstract文献阅读题目引言方法The ARIMA modelTime delay neural network (TDNN) modelLSTM and DLSTM model 评估准则实验数据描述实验结果 深度学习AttentionAttention思想公式步骤 Attention代码实现注意力机制seq2seq解码器Model验证 总结 摘要 本周阅读了一…...
Vue3中的ref和shallowRef、reactive和shallowReactive
一:ref、reactive简介 ref和reactive是Vue3中定义响应式数据的一种方式。ref通常用来定义基础类型数据。reactive通常用来定义复杂类型数据。 二、shallowRef、shallowReactive简介 shallowRef和shallowReactive是Vue3中定义浅层次响应式数据的方式 三、Api使用对比…...
go包与依赖管理
包(package) 包介绍 Go语言中支持模块化的开发理念,在Go语言中使用包(package)来支持代码模块化和代码复用。一个包是由一个或多个Go源码文件(.go结尾的文件)组成,是一种高级的代码…...
C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态
一、写入文本文件 文本文件一般以行的形式组织数据。 包含头文件:#include <fstream> 类:ofstream(output file stream) ofstream 打开文件的模式(方式):类内open()成员函数参数2.参数1是…...
nginx部署前端(vue)项目及配置修改
目录 一、前端应用打包 二、部署前端应用 1、上传前端文件夹 2、修改nginx配置文件 3、重启nginx 三、查看效果 nginx安装参考:linux安装nginx-CSDN博客 一、前端应用打包 打包命令 npm run build 打包成功如下,会在项目路径下生成dist文件夹 二…...
FreeRTOS
1.新建一个无FreeRTOS的工程,取名为Motor,根据风扇模块PDF原理图和操作文档让风扇转动 2.新建一个包含FreeRTOS的工程,取名为Semaphore 具体步骤:创建两个任务和一个共享资源,在两个任务中使用信号量来同时访问共享资源…...
windows 10/11 home左键点击开始菜单无反应
用户电脑点开始没反应,用户配置文件出错。 用户电脑是home版 windows hello指纹设置不了,其实是不能使用默认帐号administrator。 使用windowspe启用administrator用户,重启使用administrator删除出错用户。 直接使用administrator用户windows hello…...
05.领域驱动设计:认识领域事件,解耦微服务的关键
目录 1、概述 2、领域事件 2.1 如何识别领域事件 1.微服务内的领域事件 2.微服务之间的领域事件 3、领域事件总体架构 3.1 事件构建和发布 3.2 事件数据持久化 3.3 事件总线 (EventBus) 3.4 消息中间件 3.5 事件接收和处理 4、案例 5、总结 1、概述 在事件风暴&a…...
「仙逆」王麻子结丹救下老婆,极识斩杀金丹修士,元婴期下第一人
Hello,小伙伴们,我是拾荒君。 国漫《仙逆》第21期超前爆料,据透露王麻子因急需天离丹来突破至金丹期,购买了被斗邪派预定的百兽灵炉,却遭其宗派追杀。虽然王麻子已触及结丹边缘,但面对五名邪派长老,他毫无…...
GoogleNet Inception v2 和 Inception v3详解
1 GoogleNet Inception v2 v1具体结构: v2具体结构: 1 引入Batch Normalization(BN): Inception v2在每个卷积层之后引入了BN。这有助于解决深层网络中的梯度消失问题,同时加快训练过程并提高模型的收敛速度。BN通过…...
在虚拟机上安装ubuntu
记得看目录哦! 软件自取1. 新建虚拟机2. Ubuntu的汉化 软件自取 链接:百度网盘自取哦!!! 提取码:8888 1. 新建虚拟机 文件–新建虚拟机 完成完会自动启动,等待一段时间,我等了一个…...
nav02 学习03 机器人传感器
机器人传感器 移动机器人配备了大量传感器,使它们能够看到和感知周围的环境。这些传感器获取的信息可用于构建和维护环境地图、在地图上定位机器人以及查看环境中的障碍物。这些任务对于能够安全有效地在动态环境中导航机器人至关重要。 机器人的传感器类似人的感官…...
Mysql-InnoDB-数据落盘
概念 1 什么是脏页? 对于数据库中页的修改操作,则首先修改在缓冲区中的页,缓冲区中的页与磁盘中的页数据不一致,所以称缓冲区中的页为脏页。 2 脏页什么时候写入磁盘? 脏页以一定的频率将脏页刷新到磁盘上。页从缓冲区…...
<el-date-picker>时间戳单位
神级操作,搞了半天,秒是大X,毫秒是小x,yue了。 // 秒 <el-date-pickerv-model"timestamp"value-format"X" ></el-date-picker>// 毫秒 <el-date-pickerv-model"timestamp"value-fo…...
如何搭建Nextcloud云存储网盘并实现无公网ip访问本地文件【内网穿透】
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
