###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;} 

 

感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 

 

 

 

 

 

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

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

相关文章

Linux进程管理

什么是进程 进程与pid的关系 在程序被执行前&#xff0c;他们不过是硬盘或者其他存储介质中的一个文件。一旦被加载到内存中&#xff0c;程序会根据执行者的权限属性生成一串程序执行参数&#xff0c;并生成一个进程号&#xff0c;即PID。后续我们就可以根据这个PID完成对进程…

C/C++ - 内存管理(C++)

堆栈 C中的栈和堆是用于存储变量和对象​​的两个主要内存区域。栈是一种自动分配和释放内存的区域&#xff0c;用于存储局部变量和函数调用的上下文。栈上的内存分配和释放是自动进行的&#xff0c;无需手动管理。堆是动态分配内存的区域&#xff0c;用于存储动态创建的对象和…

滴滴基于 Ray 的 XGBoost 大规模分布式训练实践

背景介绍 作为机器学习模型的核心代表&#xff0c;XGBoost 在滴滴众多策略算法业务场景中发挥着至关重要的作用。因此&#xff0c;保障并持续提升 XGBoost 模型的离线训练及在线推理稳定性一直是机器学习平台的重点工作。同时&#xff0c;面对多样化的业务场景定制需求和数据规…

go语言(十八)---- goroutine

一、goroutine package mainimport ("fmt""time" )func main() {//用go创建承载一个形参为空&#xff0c;返回值为空的一个函数go func() {defer fmt.Println("A.defer")func() {defer fmt.Println("B.defer")//退出当前goroutinefmt…

Markdown(2篇文章学会Markdown

目录 1.文章链接&#xff1a;2.markdown可以用来解决什么问题&#xff1a;小结&#xff1a; 1.文章链接&#xff1a; Markdown&#xff08;2篇文章学会Markdown第一篇 Markdown&#xff08;2篇文章学会Markdown第二篇 2.markdown可以用来解决什么问题&#xff1a; 格式化文…

C++多线程1(复习向笔记)

创建线程以及相关函数 当用thread类创建线程对象绑定函数后&#xff0c;该线程在主线程执行时就已经自动开始执行了,join起到阻塞主线程的作用 #include <iostream> #include <thread> #include <string> using namespace std; //测试函数 void printStrin…

神经网络建立(结果可变)最小神经元

目录 介绍&#xff1a; 初始化&#xff1a; 建模: 预测&#xff1a; 改变结果&#xff1a; 介绍&#xff1a; 在深度学习中&#xff0c;神经元通常指的是人工神经元&#xff08;或感知器&#xff09;&#xff0c;它是深度神经网络中的基本单元。深度学习的神经元模拟了生…

【服务器GPT+MJ+GPTs】创建部署GPT+MJ+GPTs程序网站

目录 🌺【前言】 🌺【准备】 🌺【宝塔搭建GPT+MJ+GPTs】 🌼1. 给服务器添加端口 🌼2. 安装宝塔 🌼3. 安装Docker 🌼4. 安装ChatGPT程序 🌼5. 程序更新 🌼6. 修改端口 | 密码 🌼7. 绑定域名+申请SSL证书 🌺【前言】 相信大家都对openai的产品ch…

Kafka(九)跨集群数据镜像

目录 1 跨集群镜像的应用场景1.1 区域集群和中心集群1.2 高可用(HA)和灾备(DR)1.3 监管与合规1.4 云迁移1.5 聚合边缘集群的数据 2 多集群架构2.1 星型架构2.2 双活架构2.2 主备架构2.2.1 如何实现Kafka集群的故障转移2.2.1.1 故障转移包括的内容1. 灾难恢复计划2. 非计划内的故…

重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)

重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 前言 sylar是…

计网Lesson11 - 虚拟机网络环境及socket概述

文章目录 虚拟机的简述socket概述 虚拟机的简述 放张图在这&#xff0c;根本没明白是啥对啥&#xff0c;以后学了Linux再来吧 &#x1f626; socket概述 s o c k e t socket socket 是一种用于应用层的用户态与应用层以下的内核态交互的工具&#xff0c;本意为“插座”。 也就是…

网络协议与攻击模拟_08DHCP协议

技术学习要了解某项技术能干什么&#xff1f;它的详细内容&#xff1f;发展走向&#xff1f; 一、DHCP协议 1、DHCP基本概念 dhcp动态主机配置协议&#xff0c;广泛应用于局域网内部 主要是为客户机提供TCP/IP 参数&#xff08;IP地址、子网掩码、网关、DNS等&#xff09;…

YOLO 全面回顾:从最初的YOLOv1到最新的YOLOv8、YOLO-NAS,以及整合了 Transformers 的 YOLO

YOLO 全面回顾 综述评估指标YOLO v1YOLO v2YOLO v3YOLO v4YOLOv5 与 Scaled-YOLOv4 YOLORYOLOXYOLOv6YOLOv7DAMO-YOLOYOLOv8PP-YOLO, PP-YOLOv2, and PP-YOLOEYOLO-NASYOLO with Transformers 综述 论文&#xff1a;https://arxiv.org/pdf/2304.00501.pdf 代码&#xff1a;gi…

探索设计模式的魅力:深入了解适配器模式-优雅地解决接口不匹配问题

设计模式专栏&#xff1a;http://t.csdnimg.cn/nolNS 目录 一、引言 1. 概述 2. 为什么需要适配器模式 3. 本文的目的和结构 二、简价 1. 适配器模式的定义和特点 定义 特点 2. 适配器模式的作用和适用场景 作用 适用场景 3. 适配器模式与其他设计模式的比较 三、适配…

iOS 面试 Swift基础题

一、Swift 存储属性和计算属性比较&#xff1a; 存储型属性:用于存储一个常量或者变量 计算型属性: 计算性属性不直接存储值,而是用 get / set 来取值 和 赋值,可以操作其他属性的变化. 计算属性可以用于类、结构体和枚举&#xff0c;存储属性只能用于类和结构体。存储属性可…

认识产品经理 一个合格的产品经理 产品经理分类

目录 一.合格的产品经理 什么是产品 什么是产品经理 合格的产品经理 什么是产品&#xff1f;区别是&#xff1f; 什么是产品经理 合格的产品经理需要关注哪些核心问题&#xff1f; 二.产品经理分类 为什么会有不同类型 都有那些类型 根据不同类型的职责特点规划个人…

Mysql-InnoDB-数据落盘

概念 1 什么是脏页&#xff1f; 对于数据库中页的修改操作&#xff0c;则首先修改在缓冲区中的页&#xff0c;缓冲区中的页与磁盘中的页数据不一致&#xff0c;所以称缓冲区中的页为脏页。 2 脏页什么时候写入磁盘&#xff1f; 脏页以一定的频率将脏页刷新到磁盘上。页从缓冲区…

C/C++编码问题研究

文章目录 一、Unicode字符集与U8/U16/U32编码二、编码1. 占字节数2. ASCII、GB2312、GBK、GB18030 以及 UTF8 的关系3. BOM4. UTF-8的存储实现 三、编译器字符集设置1. GCC语法Example 2. MSVC语法Example 三、wchar_t五、编码转换函数六、代码 & 实践1. UTF8与UTF16、UTF3…

PDF标准详解(一)——PDF文档结构

已经很久没有写博客记录自己学到的一些东西了。但是在过去一年的时间中自己确实又学到了一些东西。一直攒着没有系统化成一篇篇的文章&#xff0c;所以今年的博客打算也是以去年学到的一系列内容为主。通过之前Vim系列教程的启发&#xff0c;我发现还是写一些系列文章对自己的帮…

HCIP寒假第8次作业

第一步把ipv4网络配通 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/0]int l0 [r1-LoopBack0]ip add 1.1.1.1 32 [r1]ospf 1 router-id 1.1.1.1 [r1-ospf-1]area 0 [r1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255[r2]int g…