###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.hqwc.cn/news/438611.html

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

相关文章

Kotlin快速入门系列7

Kotlin的数据类、密封类、枚举类 数据类 与Java等语言不同&#xff0c;kotlin创建只包含数据的类时&#xff0c;需要在类名前声明关键字&#xff1a;data。 data class KotlinBean (val brand : String) 在kotlin中&#xff0c;编译器会自动的从主构造函数中根据所有声明的…

Linux提权:Docker组挂载 Rsync未授权 Sudo-CVE Polkit-CVE

目录 Rsync未授权访问 docker组挂载 Sudo-CVE漏洞 Polkit-CVE漏洞 这里的提权手法是需要有一个普通用户的权限&#xff0c;一般情况下取得的webshell权限可能不够 Rsync未授权访问 Rsync是linux下一款数据备份工具&#xff0c;默认开启873端口 https://vulhub.org/#/envir…

【数据分析】numpy基础第一天

文章目录 前言本文代码&#xff1a;使用jupyter notebook打开本文的代码操作示例步骤1.打开Anaconda Powershell Prompt步骤2.复制代码文件地址步骤3.在Anaconda Powershell Prompt中打开jupyter notebook步骤3.5.解决一个可能的问题步骤4.在浏览器中查看ipynb文件步骤5.运行代…

【STC8A8K64D4开发板】第2-10讲:定时器/计数器

第2-10讲&#xff1a;定时器/计数器 学习目的了解定时器/计数器的概念和区别。掌握STC8A8K64D4定时器/计数器的应用流程及程序设计。 Timer原理 定时器几乎是每个单片机必有的重要外设之一&#xff0c;可用于定时、精确延时、计数等等&#xff0c;在检测、控制领域有广泛应用。…

JAVA多线程并发补充

AQS 是一个抽象父类 全称是 AbstractQueuedSynchronizer&#xff0c;是阻塞式锁和相关的同步器工具的框架。 用 state 属性来表示资源的状态&#xff08;分独占模式和共享模式&#xff09;&#xff0c;子类需要定义如何维护这个状态&#xff0c;控制如何获取锁和释放锁 getSt…

C#学习笔记-反射

前言 反射是.NET中的重要机制&#xff0c;通过反射可以得到*.exe或*.dll等程序集内部的接口、类、方法、字段、属性、特性等信息&#xff0c;还可以动态创建出类型实例并执行其中的方法。 反射的功能很强大&#xff0c;任何复杂抽象的分层架构或者复杂的设计模式均是建立在这些…

前端canvas项目实战——简历制作网站(三)——右侧属性栏(线条宽度样式)

目录 前言一、效果展示二、实现步骤1. 实现线条宽度&#xff08;strokeWidth&#xff09;的属性模块2. 实线线条样式&#xff08;strokeDashArray&#xff09;的属性模块3. 意料之外的“联动” 三、Show u the code后记 前言 上一篇博文中&#xff0c;我们初步实现了右侧属性栏…

掌握使用 React 和 Ant Design 的个人博客艺术之美

文章目录 前言在React的海洋中起航安装 Create React App安装Ant Design 打造个性化的博客风格通过路由实现多页面美化与样式定制部署与分享总结 前言 在当今数字时代&#xff0c;个人博客成为表达观点、分享经验和展示技能的独特平台。在这个互联网浪潮中&#xff0c;选择使用…

电商API接口接入|电商爬虫实践附代码案例

1.爬虫是什么 首先应该弄明白一件事&#xff0c;就是什么是爬虫&#xff0c;为什么要爬虫&#xff0c;百度了一下&#xff0c;是这样解释的&#xff1a;网络爬虫&#xff08;又被称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追…

二叉搜索树操作题目:二叉搜索树中的插入操作

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉搜索树中的插入操作 出处&#xff1a;701. 二叉搜索树中的插入操作 难度 3 级 题目描述 要求 给定二叉搜索…

当身体发出这八个信号时注意了!这有可能就是植物神经紊乱!

植物神经系统是人体自主神经系统的一部分&#xff0c;它调节内脏器官的活动并维持人体内环境的平衡。植物神经紊乱是指植物神经系统失去平衡而引起的一系列身体反应。这些反应可能是不规律、异常或者不适当的。 那么&#xff0c;植物神经紊乱有哪些常见的信号呢&#xff1f;下…

老龄化对投资意味着什么?

1月15日&#xff0c;国务院办公厅印发《关于发展银发经济增进老年人福祉的意见》从4个方面提出26项举措&#xff0c;为我国首个以“银发经济”命名的政策文件。 近期&#xff0c;国信证券分析师王开发布题为《银发经济再思考&#xff1a;老龄化对投资的影响》的报告&#xff0…