C语言 循环高级

时间:2024.11.6

一、学习内容

1、无限循环

无限循环:循环永远停不下来

注意点:无限循环因为永远停不下来,所以下面不能再写其他的代码了

2、break

跳转控制语句:

在循环的过程中,跳到其他语句上执行

 

#include<stdio.h>
int main() {int count = 0;int i;
//利用for循环去获取1-100之间的数字	
for (i = 1; i < =100; i++) {
//去判断当前的数字是否满足题目的要求		
if ((i % 3 == 0) && (i % 5 == 0)){count++;if (count == 1)printf("%d\n", i);}}return 0;
}

 或

#include<stdio.h>
int main() {int i;
//利用for循环去获取1-100之间的数字	
for (i = 1; i < =100; i++) {
//去判断当前的数字是否满足题目的要求		
if ((i % 3 == 0) && (i % 5 == 0)){printf("%d\n", i);break;}}return 0;
}

3、continue

结束本次循环,继续下次循环

#include<stdio.h>
int main() {int i;//利用循环去实现吃包子for (i = 1; i <= 5; i++) {//跳过第三次if(i==3){continue;}printf("在吃第%d个包子\n", i);}return 0;
}

 

 

4、跳出多层循环和goto

二、练习

1、练习1-打印矩形

循环嵌套:循环里面还有其他循环

先确定内循环是做什么事情,外循环就是把里面的代码重复执行了N次

 

#include<stdio.h>
int main() {int i,j;//外循环for (i = 1; i <= 3; i++) {//内循环for (j = 1; j <= 5; j++) {printf("*");}printf("\n");		}	return 0;
}

2、练习2-打印直角三角形

 

#include<stdio.h>
int main() {int i,j;//外循环for (i = 1; i <= 5; i++) {//内循环for (j = 1; j <= i; j++) {printf("*");}printf("\n");		}	for (i = 1; i <= 5; i++) {//内循环for (j = 1; j <= 6-i; j++) {printf("*");}printf("\n");}return 0;
}

3、练习3-打印乘法表

 

#include<stdio.h>
int main() {int i,j,m;//外循环for (i = 1; i <= 9; i++) {//内循环for (j = 1; j <= i; j++) {m = i * j;printf("%d * %d = %d ",i,j,m);}printf("\n");		}	return 0;
}

 改进:利用制表符\t调整格式

#include<stdio.h>
int main() {int i,j,m;//外循环for (i = 1; i <= 9; i++) {//内循环for (j = 1; j <= i; j++) {m = i * j;printf("%d * %d = %d\t",i,j,m);}printf("\n");		}	return 0;
}

4、练习4-统计质数

 第1步:

#include<stdio.h>
int main() {
/*
1.判断一个整数是否是一个质数
2.添加范围1-100
3.统计
*/int n=100,i;//定义变量记录整数int count = 0;//scanf("%d\n", &n);//统计从2开始,到n-1这个范围内有多少个数字能被n整数for (i = 2; i < n; i++) {if (n % i == 0){//找到了一个数字能被n整除count++;//优化:后面其余的数字无需再次判断,提高程序的循环效率break;}}//对count进行判断if (count == 0) {printf("%d是一个质数", n);}else	printf("%d不是一个质数", n);return 0;
}

第2步: 

#include<stdio.h>
int main() {
/*
1.判断一个整数是否是一个质数
2.添加范围1-100
3.统计
*/for (int i = 2; i < 100; i++) {//i:依次表示2-100之间的每一个数字//定义变量记录整数int count = 0;//scanf("%d\n", &n);//统计从2开始,到n-1这个范围内有多少个数字能被n整数for (int j = 2; j < i; j++) {if (i % j == 0){//找到了一个数字能被i整除count++;//优化:后面其余的数字无需再次判断,提高程序的循环效率break;}}//对count进行判断if (count == 0) {printf("%d是一个质数\n", i);}elseprintf("%d不是一个质数\n", i);
}return 0;
}

第3步:

 

#include<stdio.h>
int main() {
/*
1.判断一个整数是否是一个质数
2.添加范围1-100
3.统计
*///定义一个变量,用来统计2-100之间一共有多少个质数int count1 = 0;for (int i = 2; i <= 100; i++) {//i:依次表示2-100之间的每一个数字//定义变量记录整数int count = 0;//scanf("%d\n", &n);//统计从2开始,到n-1这个范围内有多少个数字能被n整数for (int j = 2; j < i; j++) {if (i % j == 0){//找到了一个数字能被i整除count++;//优化:后面其余的数字无需再次判断,提高程序的循环效率break;}}//对count进行判断if (count == 0) {printf("%d是一个质数\n", i);count1++;}	
}printf("一共%d个质数\n", count1);return 0;
}

加上scanf 

#include<stdio.h>
int main() {
/*
1.判断一个整数是否是一个质数
2.添加范围1-100
3.统计
*///定义一个变量,用来统计2-100之间一共有多少个质数int count1 = 0;int number;scanf("%d", &number);for (int i = 2; i <= number; i++) {//i:依次表示2-100之间的每一个数字//定义变量记录整数int count = 0;//scanf("%d\n", &n);//统计从2开始,到n-1这个范围内有多少个数字能被n整数for (int j = 2; j < i; j++) {if (i % j == 0){//找到了一个数字能被i整除count++;//优化:后面其余的数字无需再次判断,提高程序的循环效率break;}}//对count进行判断if (count == 0) {printf("%d是一个质数\n", i);count1++;}	
}printf("一共%d个质数\n", count1);return 0;
}

 

5、练习5-幂级数列

 

#include<stdio.h>
int main() {long long result = 0;int i, j,n=10;//外循环:依次表示1-10for (i = 1; i <= n; i++) {//内循环:表示外循环的数字一共要乘几次//pow表示每个选项的单独结果long long pow = 1;for (j = 1; j <= i; j++) {pow = pow * i;}//当内循环结束后,将单独的结果进行累加result += pow;}printf("%lld\n", result);return 0;
}

6、练习6-特殊数字

 

#include<stdio.h>
int main() {for (int i = 1; i <= 1000; i++){int a = i / 100;int b = i / 10 % 10;int c = i % 10;if ((a + b + c) == 15) {printf("%d\n", i);}}return 0;
}

 

三、知识点

1、制表符\t

长度可变的大表格

作用:

在打印图表型数据时,可以让数据对齐

原理:

会根据前面字母的个数在后面补空格,让整体的长度达到8或8的倍数,最少补1个,最多补8个

abc\t  补5个

zhangshan\t  补8个

张\t   补6个(一个中文占2个字符)

printf("name\tage\n");
printf("zhangshan23\n");或
printf("name\t\tage\n");
printf("zhangshan\t23\n");

2、goto的用法

break只能跳出单层循环,goto可以跳出多层循环

结合标号,可以跳到代码中的任意地方,一般只用于跳出循环嵌套 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

62-Java-面试专题(1)__基础

62-Java-面试专题(1)__基础-- 笔记 笔记内容来源与黑马程序员教学视频 文章目录 62-Java-面试专题(1)__基础-- 笔记Java-面试专题(1)笔记中涉及资源&#xff1a; 一、二分查找①&#xff1a;代码实现1. 流程2. 代码实现3. 测试 ②&#xff1a;解决整数溢出&#xff08;方法一&…

解决CORS (跨源资源共享) 错误

问题引入 前端代码 <template><div id"hello-vue" class"demo">{{ message }}</div><el-button type"primary" click"handleClick">我是一个按钮</el-button></template><script setup>//加…

微信小程序 uniapp网络记账设计个人理财系统

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 aa账簿 (自动编号、用户id、用户账号、备注、登记时间、消费类型、创建时间、消费金额)&#xff1b; 配置文件 (自动编…

【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库

实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;认识界面&#xff0c;了解其两个基本操作系统文件&#xff0c;并能熟练区分与应用交互式与T-SQL式两种方法在SQL Server中如何进行操作&#xff1b;学习有关数据库的基本操作&#xff0c;包括&#xff1a…

大腾智能3D一览通携手飞书,实现高效设计协同

设计生产作为制造业的核心环节&#xff0c;其效率与协同性直接关系到企业的市场竞争力和响应速度。 在设计部门内部&#xff0c;虽然可以直接发送3D格式的文件进行沟通和评审&#xff0c;但当涉及到跨部门甚至是跨企业的协作时&#xff0c;情况就变得复杂。通常需要大量的多角…

Java项目实战II基于Spring Boot的药店管理系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着医疗行业的快速发展和人们对健康需…

qt QHeaderView详解

1、概述 QHeaderView 是 Qt 框架中的一个类&#xff0c;它通常作为 QTableView、QTreeView 等视图类的一部分&#xff0c;用于显示和管理列的标题&#xff08;对于水平头&#xff09;或行的标题&#xff08;对于垂直头&#xff09;。QHeaderView 提供了对这些标题的排序、筛选…

【Android】使用productFlavors构建多个变体

项目需求 在一个设备上安装两个一样的程序app 需求解决 我们知道每一个app都有一个包名的&#xff0c;如果一个app在Android设备上安装之后&#xff0c;再安装这个app的话会进行覆盖安装&#xff0c;因为他们两个的包名是一样的&#xff0c;默认是一个app。 但是我们现在需…

AI笔筒操作说明及应用场景

AI笔筒由来&#xff1a; 在快节奏的现代办公环境中&#xff0c;我们一直在寻找既能提升效率、增添便利&#xff0c;又能融入企业文化、展现个人品味的桌面伙伴。为此&#xff0c;我们特推出专为追求卓越、注重细节的您设计的AI笔筒礼品版&#xff0c;它集高科技与实用性于一身…

【笔面试常见题:三门问题】用条件概率、全概率和贝叶斯推导

1. 问题介绍 三门问题&#xff0c;又叫蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;&#xff0c;以下是蒙提霍尔问题的一个著名的叙述&#xff0c;来自Craig F. Whitaker于1990年寄给《展示杂志》&#xff08;Parade Magazine&#xff09;玛丽莲沃斯莎凡特&#x…

Elasticsearch中时间字段格式用法详解

Elasticsearch中时间字段格式用法详解 攻城狮Jozz关注IP属地: 北京 2024.03.18 16:27:51字数 758阅读 2,571 Elasticsearch&#xff08;简称ES&#xff09;是一个基于Lucene构建的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索以及分析等功能&#xff0c;广泛…

sql数据库-DQL-基本查询

目录 举例表emp 查询多个字段 查询整张表所有数据 给字段名起别名&#xff08;更方便阅读&#xff09; 去除重复的数据 举例表emp 查询多个字段 SELECT 字段1,字段2,字段3...FROM 表名; 举例查询emp表中的name&#xff0c;workno&#xff0c;age字段返回 查询整张表所有数据 …

JqGird 动态生成列使用

使用场景&#xff1a; 在工作用需要自定义动态生成列&#xff0c;通过选择下拉框&#xff0c;加载列&#xff0c;通过查询加载列对应的数据信息 当选择文件源任务显示三列 当选择数据源任务显示两列 处理方式&#xff1a; 1. 首先在刚进入界面时初始化控件 $("#pageGri…

Rust项目结构

文章目录 一、module模块1.二进制文件的cargo项目2.库的cargo项目3.文件内的module 二、模块化项目结构1.关于module2.各个模块之间互相引用 三、推荐项目结构1.实例 参考 一、module模块 crate规则&#xff1a; 规则一&#xff1a;一个包中必须至少包含一个crate规则二&#…

电能管理系统(源码+文档+部署+讲解)

本文将深入解析“电能管理系统”的项目&#xff0c;探究其架构、功能以及技术栈&#xff0c;并分享获取完整源码的途径。 系统概述 “工厂电能管理系统” 是一款集设备管理、维修管理、能耗监测、节能分析、储能管理、充电桩管理、冷源站管理、报警管理、点检管理等功能于一体…

网上纪念馆(源码+文档+部署+讲解)

最近我在挖掘一些优秀的开源项目时&#xff0c;无意间发现了一个相当给力的系统——网上纪念馆系统。这个系统不仅功能完善&#xff0c;满足了线上祭祀和纪念的需求&#xff0c;而且代码结构清晰&#xff0c;易于二次开发。作为一名技术爱好者&#xff0c;我觉得有必要把这个好…

华为HarmonyOS打造开放、合规的广告生态 - 贴片广告

场景介绍 贴片广告是一种在视频播放前、视频播放中或视频播放结束后插入的视频或图片广告。 接口说明 接口名 描述 loadAd(adParam: AdRequestParams, adOptions: AdOptions, listener: AdLoadListener): void 请求单广告位广告&#xff0c;通过AdRequestParams、AdOptions…

责任链模式 Chain of Responsibility

1 意图 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 2 结构 Handler 定义一个处理请求的接口;(可选)实现后继链。 ConcreteHandler …

【Linux】- 权限(2)

接上一篇文章&#xff0c;继续介绍linux权限的相关知识。https://blog.csdn.net/hffh123/article/details/143432940?spm1001.2014.3001.5501j 目录 一、chown&#xff1a;修改文件的拥有者 二、chgrp&#xff1a;修改文件所属组 三、关于other的介绍 四、文件类型 1、分类…

RTX5/FreeRTOS全家桶源码工程综合实战模板集成CANopen组件(2024-10-30)

【前言】 之前的视频教程分享了两期CANopen的专题&#xff0c;配套的例子都是基于裸机的&#xff0c;为了方便大家在OS下使用&#xff0c;本期视频带OS下的支持。 CANopen协议栈专题&#xff0c;实战方式系统了解NMT&#xff0c;PDO&#xff0c;SDO&#xff0c;时间戳&#x…