【C语言基础】遍历

news2024/9/28 23:28:44
  • (꒪ꇴ꒪(꒪ꇴ꒪ ),我是祐言
  • 博客主页:C语言基础,Linux基础,软件配置领域博主🌍
  • 快上🚘,一起学习!
  • 送给读者的一句鸡汤🤔:
  • 集中起来的意志可以击穿顽石!
  • 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏
  • 🎉感谢关注

一、遍历

         遍历是指按照一定的顺序逐个访问集合中的元素或执行某个操作的过程。遍历通常使用循环结构来实现,以便对集合中的每个元素进行处理。在编程中,遍历常用于处理数据结构(如数组、链表、树等)或迭代访问某个范围的元素。通过遍历,我们可以逐个访问集合中的元素,进行读取、修改、打印等操作。

        遍历的基本思路如下:

        (1)确定遍历的起点和终点:确定要遍历的集合或范围,以及遍历的起始位置和终止条件。

        (2)设定循环:使用循环结构(如 for 循环、while 循环等)来控制遍历过程。循环的计数器或迭代变量通常与集合的索引相关。

        (3)访问元素:在每次循环迭代中,根据当前的计数器或迭代变量,访问集合中相应的元素。

        下面是一的遍历的简单示例:

#include <stdio.h>

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int length = sizeof(numbers) / sizeof(numbers[0]);

    // 使用 for 循环遍历数组
    for (int i = 0; i < length; i++) {
        printf("%d \n", numbers[i]);
    }

    return 0;
}

        在这个示例中呢,我们定义了一个整数数组 numbers,然后使用 for 循环遍历数组的每个元素并打印出来。循环的计数器 i 控制了遍历的索引,从 0 递增到数组长度减 1。

        需要注意的是,遍历的终止条件通常是计数器达到集合的长度或满足特定的条件。通过遍历,我们可以按照需要逐个处理集合中的元素,执行特定的操作,比如查找最大值、求和、筛选符合条件的元素等。

二、双重遍历

        

        双重遍历是指嵌套两层循环,内层循环在外层循环的每次迭代中都完全执行一遍。这种嵌套循环的结构常用于处理多维数据结构等。在双重遍历中,外层循环控制着整体的迭代次数,内层循环用于对每个外层循环迭代中的元素执行操作。

        下面我们来通过一个简单的示例题目学习双重遍历:

编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。

(ps:素数:只能被1和本身整除的数)

        先来看看实现效果吧。        

        效果不错,那么一起来学习一下如何实现吧:

#include <stdio.h>

// 自定义函数,用于打印小于等于给定整数的素数
void prime(int n)
{
    int i, j;

    // 首先判断输入是否有效
    if (n < 2)
    {
        printf("无效参数\n");
        return;
    }

    // 从2开始遍历到给定整数n
    for (i = 2; i <= n; i++)
    {
        // 对于每个数字i,从2到i-1遍历
        for (j = 2; j < i; j++)
        {
            // 如果i能够被j整除,则说明不是素数,退出内层循环
            if (i % j == 0)
                break;
        }

        // 如果内层循环正常结束,说明i没有被整除过,是素数,打印出来
        if (i == j)
            printf("%d ", i);
    }
	printf("\n");
}

int main(int argc, char *argv[])
{
    int n;

    printf("请输入一个整数: \n");
    scanf("%d", &n);

    // 调用自定义函数,打印小于等于给定整数的素数
    prime(n);

    return 0;
}

        是否看的一头雾水呢,那么再来看看解释吧:

  • 首先在开头引入了 <stdio.h> 标准库头文件,以便使用输入输出函数。

  • 定义一个自定义函数 prime,用于打印小于等于给定整数的素数。

  • prime 函数中,首先判断输入的参数是否小于2。如果小于2,即无效参数,打印一条错误提示信息,并返回到调用函数。

  • 在外层循环中,从2开始遍历到给定的整数n。

  • 在内层循环中,对于每个数字i,从2到j(i-1)进行遍历。

  • 如果i能够被某个数字j整除(即 i % j == 0),则说明i不是素数,退出内层循环。

  • 如果内层循环正常结束(即 i == j),说明i没有被整除过,是素数,将其打印出来。

  • main 函数中,首先提示用户输入一个整数,并使用 scanf 函数将输入的值存储在变量n中。

  • 然后,调用自定义函数 prime(n),打印小于等于给定整数的素数。

  • 最后,返回0表示程序成功执行完毕。

这个程序通过嵌套循环来判断素数,并打印出小于等于给定整数的素数。素数判断的逻辑是通过判断一个数是否能被2到它本身减1的数字整除来实现的。

    最后总结一下!

        遍历的终止条件通常是计数器达到集合的长度或满足特定的条件。通过遍历,我们可以按照需要逐个处理集合中的元素,执行特定的操作,比如查找最大值、求和、筛选符合条件的元素等。

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~

 

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

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

相关文章

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

S7-1200与ABB机器人进行SOCKET通信的具体方法示例 SOCKET通信是一种基于TCP/IP协议的通信方式,提供了程序内部与外界通信的端口并为通信双方提供了数据传输通道。 ABB机器人实现SOCKET通信必须要在Communication选项中勾选616-1 PC Interface选项功能。 具体方法可参考以下内容…

SpringBoot+Vue酒店客房管理系统

&#x1f495;&#x1f495;作者&#xff1a;程序员徐师兄 个人简介&#xff1a;7 年大厂程序员经历&#xff0c;擅长Java、微信小程序、Python、Android等&#xff0c;大家有这一块的问题可以一起交流&#xff01; 各类成品java毕设 。javaweb&#xff0c;ssh&#xff0c;ssm&…

从YOLOv1到YOLOv8的YOLO系列最新综述【2023年4月】

作者&#xff1a;Juan R. Terven 、Diana M. Cordova-Esparaza 摘要&#xff1a;YOLO已经成为机器人、无人驾驶汽车和视频监控应用的核心实时物体检测系统。我们对YOLO的演变进行了全面的分析&#xff0c;研究了从最初的YOLO到YOLOv8每次迭代的创新和贡献。我们首先描述了标准…

Python 中的二维插值

本文展示了如何在 Python 中进行插值&#xff0c;并研究了不同的 2d 实现方法。 我们将讨论用于双变量插值的有用函数&#xff0c;例如 scipy.interpolate.interp2d、numpy.meshgrid 和 Python 中使用的用于平滑/插值 (RBF) 的径向基函数。 我们将使用 SciPy 和 Numpy 库实现插…

树莓派配置ubuntu server 22.04环境

背景 比起raspberry系统ubuntu更通用&#xff0c;结合公司项目开发需要&#xff0c;将树莓派4B刷上ubuntu server系统&#xff0c;并且安装LXDE桌面环境。 一波next 烧写镜像 用树莓派镜像烧录软件安装比较简单&#xff0c;选择操作系统&#xff1a;Other general-purpose O…

python psutil模块常用方法

psutil 是一个功能强大的跨平台第三方库&#xff0c;用于检索系统相关信息和进程管理。它提供了一些方便的函数和方法&#xff0c;可以获取 CPU 使用率、内存使用情况、磁盘信息、网络统计数据以及进程列表等。 1. 安装psutil pip install psutil2. 获取 CPU 使用率 import p…

flutter聊天界面-聊天列表 下拉加载更多历史消息

flutter聊天界面-聊天列表 下拉加载更多历史消息 在之前实现了flutter聊天界面的富文本展示内容、自定义表情键盘实现、加号【➕】更多展开相机、相册等操作Panel、消息气泡展示实现Flexible。这里把实现的聊天界面的滑动列表及下拉加载更多历史消息记录一下 聊天界面的列表使…

MySQL索引优化原则和失效情况

目录 1. 全值匹配2. 最佳左前缀法则3. 不要在索引列上做任何计算4. 范围之后全失效5. 尽量使用覆盖索引6. 使用不等于&#xff08;!或<>&#xff09;会使索引失效7. is null 或 is not null也无法使用索引8. like通配符以%开头会使索引失效9. 字符串不加单引号导致索引失…

程序员的悲哀是什么?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 切记&#xff0c;任何文章不要过度深思&#xff08;任何东西都无法经得起审视&#xff0c;因为这世上没有同样的成长环境&#xff0c;也没有同样的认知水平同时也「没有适用于所…

大模型高效训练基础知识:梯度累积(Gradient Accumulationn)

梯度累积 梯度累积&#xff08;Gradient Accumulation&#xff09;的基本思想是将一次性的整批参数更新的梯度计算变为以一小步一小步的方式进行&#xff08;如下图&#xff09;&#xff0c;具体而言该方法以小批次的方式进行模型前向传播和反向传播&#xff0c;过程中迭代计算…

变革管理中的几个不错的模型小结

其他的变革模型&#xff1a; 变革管理流程&#xff1a;

二、Java的变量

二、变量 2.1、关键字与保留字 关键字 定义&#xff1a;赋予特殊含义&#xff0c;用做专门用途的字符串 特点&#xff1a;关键字的所有字母都为小写 保留字&#xff08;reserved word&#xff09; 现有Java版本尚未使用&#xff0c;但以后版本可能会作为关键字使用。自己命名…

使用PYQT制作人才交流管理系统

利用使用PYQT制作一个人才交流管理系统&#xff0c;先使用QT designer.exe设计好人才交流管理系统的各个UI界面&#xff0c;然后利用pyuic把生成的ui界面编译为py文件&#xff0c;在主函数文件内创建一个类继承ui.py界面的类&#xff0c;即可完成数据库逻辑与 GUI 代码分离&…

小米不再忍耐,裁员三分之一强势反击印度,印度制造或因此梦破

就在小米公司表态继续投资印度之后不久&#xff0c;印度媒体报道指小米印度公司的员工数量从1500人减少到1000人左右&#xff0c;这显示出小米开始强势反击印度&#xff0c;业界人士指出此举的影响远不止于此&#xff0c;结果很可能是导致印度制造的梦想破灭。 1.小米为印度手机…

软件工程——第9章面向对象方法学引论知识点整理

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.当前最好的软件开发技术是&#xff1f; 2.面向对象的原则是什么&#xff1f; 3.人们把客观世界中的实体抽象为什么&#xff1f; 4.软件系统本质上…

主诉病程时长提取

编写Python函数 import re def structured_pro(original_text,keyword,out_unitNone):pattern_split_str[。&#xff0c;]pattern_splitre.compile(pattern_split_str,re.I|re.M)original_listpattern_split.split(original_text)pattern_keywordre.compile(keyword,re.I|re.M…

目前最好的MicrosoftProject替代方案

Microsoft Project是一个功能强大的项目管理工具。然而它可能是昂贵的&#xff0c;并且可能不适合所有的项目管理需求。幸运的是&#xff0c;有几个Microsoft Project的替代方案提供了类似的特性和功能。在本文中我们将探索目前可用的一些最好的Microsoft Project替代方案。 1、…

12.4 ARM异常处理

目录 ARM异常处理&#xff08;一&#xff09; 异常 概念 异常处理机制 ARM异常源 概念 ARM异常源 ARM异常模式 ARM异常处理&#xff08;二&#xff09; ARM异常响应 异常向量表 异常返回 IRQ异常举例​编辑 ARM异常处理&#xff08;三 &#xff09; 异常优先级 …

自我介绍这样写?

已经帮小伙伴改了 500 多份简历了&#xff0c;也发现了一些大家写简历时的共性问题。其中让我印象比较深刻的一个点就是 自我介绍 &#xff0c;基本上所有同学的自我介绍都是这么写的&#xff1a; 读这篇文章的朋友们&#xff0c;你是不是也是这么写自我介绍的呢&#xff1f; 这…

MySQL索引优化整合案例实现

目录 1 JOIN优化1.1 JOIN算法原理1.2 in和exists函数 2 order by优化2.1 索引排序2.2 额外排序2.3 排序优化 3 索引单表优化案例3.1. 建表3.2. 单表索引分析3.1.1 需求3.1.2 优化 4 索引多表优化案例 1 JOIN优化 1.1 JOIN算法原理 1) JOIN回顾 JOIN 是 MySQL 用来进行联表操作…