当前位置: 首页 > news >正文

数组(3)

12.数组练习4 反转数组

#include <stdio.h>
void printArr(int arr[], int len);
int main()
{/*需求:键盘录入5个数据并存入数组,完成一下要求1.遍历数组 2.反转数组3.再次遍历*///1.定义数组int arr[5] = { 0 };int len = sizeof(arr) / sizeof(int);//2.键盘录入数据for (int i = 0; i < len; i++){printf("请录入第%d个元素\n", i + 1);scanf_s("%d", &arr[i]);}//3.遍历数组printArr(arr, len);//4.反转数组int i = 0;int j = len - 1;while (i < j){int temp = arr[i];arr[i] = arr[j];arr[j] =  temp;i++;j--;}//5.遍历数组printArr(arr, len);return 0;
}
void printArr(int arr[], int len)
{for (int i = 0; i < len; i++){printf("%d\n", arr[i]);}
}

13.数组练习5 打乱数组中的数据

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{/*需求:定义一个数组,存入1-5,要求打乱数组中所有数据的顺序        *///1.定义数组int arr[] = { 1,2,3,4,5, };int len = sizeof(arr) / sizeof(int);//2.遍历数组,得到每一个元素,让这个元素跟随机索引处的元素进行交换//设置种子srand(time(NULL));for (int i = 0; i < len; i++){//获取一个随机索引//0~4int index = rand() % len;//拿着i指向的元素,跟index指向的元素进行交换int temp = arr[i];arr[i] = arr[index];arr[index] = temp;}//3.遍历数组for (int i = 0; i < len; i++){printf("%d\n", arr[i]);}
}

14.数组常见算法1 基本查找/顺序查找

小程序

#include <stdio.h>
int order(int arr[], int len, int num);int main()
{/*需求:数组的基本查找核心思路:就是从数组的0索引开始,依次往后查找如果找到了,就会返回数据对应的索引如果没有找到,就会返回-1*///1.定义数组int arr[] = { 11,22,55,77,44 };int len = sizeof(arr) / sizeof(int);//2.定义一个变量表示要查找的数据int num = 55;//3.调用函数查找数据int index =order(arr, len,num);//4.输出索引printf("%d\n", index);return 0;}//作用:查找数组中的数据
//返回值:数据所在的索引
int order(int arr[], int len, int num)
{for (int i = 0; i < len; i++){if (arr[i] == num){return i;}}return -1;}

笔记

15.数组常见算法2 二分查找/折半查找

小程序

#include <stdio.h>
int binarySearch(int arr[], int len, int num);
int main()
{/*需求:数组的二分查找在7,23,79,81,103,127,131,147 中查找数据*///1.定义数组int arr[] = { 7,23,79,81,103,127,131,147 };int len = sizeof(arr) / sizeof(int);//2.定义变量表示要查找的数据int num = 150;//3.调用函数查找数据int index = binarySearch(arr, len, num);//4.输出printf("%d\n", index);return 0;
}//作用:利用二分查找法查找数据
//返回值:数据在数组中的索引
//找到了,真实的索引
//没有找到,返回-1
int binarySearch(int arr[], int len, int num)
{//1.确定查找的范围int min = 0;int max = len - 1;//2.利用循环不断得进行查找while (min <= max){//确定中间位置int mid = (min + max) / 2;//比较//min max mid 表示索引//num表示要查找的元素//坑:arr[mid]跟num进行比较if (arr[mid] < num){//要查找的数据在右边min = mid + 1;}else if (arr[mid] > num){//要查找的数据是在左边max = mid - 1;}else{return mid;}}//3.如果min大于maxl,表示数据不存在,赶回-1return -1;}

笔记

http://www.xdnf.cn/news/1419427.html

相关文章:

  • 深度学习篇---ShuffleNet
  • 人工智能知识体系全景图:从基础概念到2025年前沿技术(二)
  • 基于SpringBoot+MYSQL开发的教务选课系统
  • 基于SpringBoot的动漫周边商城系统【2026最新】
  • 第二十八天-光敏传感器实验
  • 人工智能之数学基础:常用的连续型随机变量的分布
  • Empire: LupinOne靶场渗透
  • 音频数据集采样率选择建议
  • 【数据库】openGauss 6.0 单机自动化安装最佳实践
  • ‌NAT穿透技术原理:P2P通信中的打洞机制解析‌
  • Python核心技术开发指南(033)——函数的嵌套
  • 【LeetCode 热题 100】5. 最长回文子串——中心扩散法
  • 数组基础及原理
  • NoteGen – 跨平台 AI 笔记应用,支持截图、插图和文本输入记录方式
  • 从零开始学习n8n-定时器+HTTP+飞书多维表格(下)
  • 在 Halo 中导入 Markdown 和 Word 文档
  • Go语言入门学习笔记
  • React前端开发笔记合集
  • Go 语言 sync 包解析
  • 三消消乐益智小游戏抖音快手微信小程序看广告流量主开源
  • 前端安全防护深度实践:从XSS到CSRF的完整安全解决方案
  • 大模型落地:从微调到部署的全景式实战指南
  • DAY02:【DL 第一弹】pytorch
  • 宋红康 JVM 笔记 Day09|方法区
  • 【阿里云实战】基于MQTT的Java SDK收发消息-终端和终端消息收发
  • 汽车曲柄连杆机构cad+ea113+设计说明书
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第八章知识点问答(18题)
  • 从理论到RTL,实战实现高可靠ECC校验(附完整开源代码/脚本)(3) RTL实现实战
  • DBeaver社区版AI助手(AI Assistant)设置
  • 基于Hadoop与层次聚类技术的电子游戏销售分析系统的设计与实现