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

C语言基础:一维整形数组

C语言定义:

数组是一组==相同数据类型== ==有限个==数据的集合。

1)数据类型相同

2)数据的个数有限个

功能 ,用来存储多个数据。多个变量。

分类:

一维整形数组

二维整形数组

一维字符数组 -》 1个字符串

二维字符串 -》 多个字符串

多维数组 -》 二维数组以上

1 定义数组
​ int a=3;// int 数据类型 数组名[整形常量]; int array[5]; // array 数组名(集合名) int [] 5 可以容纳5个int 的变量 int array2[2+3]; ​ int array3[a+2];// error a是一个变量 ​ void b;// 不能有 void类型的变量 void array4[5]; //不能有 void类型的数组 ​

特性:

  1. 单一性 数据类型相同 2.连续性 内存空间连续存放 3.有序行 元素是有序的

2.数组元素的访问
数组名[下标]; [] 数组下标运算符 , 下标从 0 开始,表示第一个元素 下标 ,范围 0 - 容量-1; 常量,变量,表达式,类型是整形 ​ 数组不能整体操作 。定义完毕后,不能整体赋值。 int a[5]; a =10; // 错误的,不能操作。 ​ 数组访问的过程不要越界,越界后,行为不确定。 ​ 数组元素本身,可以做左值,或右值 ​ a[0] = 10; // a[0] 数据类型 int 写入 第一元素 a[1] = 20; // 数组元素作左值 ,写入 a[2] = 30; a[3] = 40; // 这是最后一个元素 a[4] = 50; // 注意没有 a[5] , 这个一个越界的位置 错误 ,下标从0开始 // a[5] =60; // int c = 0; ​ b = a[1]+1; // 数组元素作 右值,读出 a[c] =20; ​
3.初始化
int main() { ​ // 定义+初始化 全部初始化 ,注意不要越界 int a[5]={1,2,3,4,5}; ​ //局部初始化 // 初始化部分数据,剩下的全部是0 int a2[5]={1,2,3}; // 全部都是0 用的多 int a3[5]={0}; ​ // 数组的容量可以是空的,但必须初始化 // ,编译器会根据初始化的个数,填入容量 int a4[] = {1,2,3}; // 不给容量,也没有给初值,编译报错 //int a5[]; ​ int a5[]={0}; // a5 数组中,只有一个元素 return 0; }
4.数组的遍历
遍历,有且只有一次,访问数组中所有的元素操作。 int a[50]={0}; ​ 写入遍历 for(i=0;i<size;i++) { a[i] = rand()%1000; } ​ 读出遍历 for(i=0;i<size;i++) { printf("%3d\t",a[i]); ​ }​
5.数组的倒置
int temp =0; //倒置 for(i=0;i<size/2;i++) { temp =a[i]; a[i] =a[size-1-i]; a[size-1-i]= temp; } ​
6 .冒泡
冒泡 ,升序 相邻元素依次比较 如果前面的数大,交换两数 ,内层循环 ++ 一次 数组遍历一次 ,会找到最大值,并存储在数组的最后。外层循环 ++ 一次 ​
int j = 0 ; for(j = size-1;j>0;j--) // 外层循环 j++ ,找到一个最大值,存储到最后 { for(i=0;i<j;i++) // 内层循环 i++ ,相邻元素比较 { if(a[i]> a[i+1]) { int t = a[i]; a[i] = a[i+1]; a[i+1] = t; ​ } } } ​

7.选择

选择 ,升序 元素依次比较 如果前面的数大,交换两数 ,内层循环 ++ 一次 , 数组遍历一次 ,会找到最小值,并存储在数组的最前面。外层循环 ++ 一次 int j = 0 ; for(j=0;j<size-1;j++) { for(i=j+1;i<size;i++) { if(a[j]> a[i]) { int t = a[i]; a[i] = a[j]; a[j] = t; ​ } } }

插入排序
二分查找(折半查找)
前提条件:序列必须有序
思想(升序):将要查找的值和序列的中间位置值比较,比中间位置值大,则在后半序列中继续折
半查找,如果比中间值小,则从前半个序列中继续折半查找,如果恰好相等,则找到。
优势:效率高---->时间复杂度O(logn)

i = 0; j = len - 1; while (i <= j) { mid = (i + j) / 2; if (num > a[mid]) { i = mid + 1; } else if (num < a[mid]) { j = mid - 1; } else { printf("find %d\n", a[mid]); break; } } if (i > j) { printf("Not find\n"); }
http://www.jsqmd.com/news/1291691/

相关文章:

  • 2026年7月山西厂房质量检测鉴定/装修工程检测鉴定公司选哪家_山西建科元丰工程检测有限公司 - 行业平台推荐
  • 三菱FX5U PLC控制4轴伺服系统的组装线应用
  • firewall用户认证综合实验
  • 终极解决方案:用SetDPI彻底告别Windows多显示器DPI缩放混乱
  • png转bmp:政务上传报错时,手机与电脑怎么对照处理 - 办公小帮手
  • 3个秘诀让您的Windows右键菜单效率翻倍
  • 在Windows上解锁Mesa3D的图形潜能:开源驱动完全指南
  • Node.js 全栈独立产品 2026 下半年技术路线规划
  • 基于OpenSSL在Linux搭建私有CA:从原理到生产实践
  • 基于整合效率η与分形稳健性ψ的对话认知生长质量深度评估研究报告
  • 多智能体系统实战:从AutoGen到ChatDev的架构解析
  • 智能车竞赛全栈技术解析:从PID控制到系统设计避坑指南
  • 高碑店市防水补漏_2026河北京南卫星城漏水维修避坑指南与五大正规团队推荐 - 雨婺虹房屋维修
  • Jenkins与Gitee Webhook配置实战:实现代码推送自动部署
  • 5个核心优势:Syncthing Android构建私有云同步网络的终极指南
  • EMC设计中静电电容选型与计算:从原理到实战的精准防护
  • Selenium模拟登录全攻略:从环境搭建到实战优化
  • 深入解析HashMap与Map:从接口设计到底层实现与性能优化
  • 01_GEO是什么_AI搜索时代的品牌新入口
  • 跨境电商工具怎么选?从选品、图片翻译到上架运营的一套效率工具清单
  • Rider替代VS进行UE4开发:轻量配置与高效C++工作流指南
  • GPT-5.6 来了,Codex 没了,我想用它做个旧手机监控 App
  • STM32 ADC开发实战:从原理到多通道DMA采集与性能优化
  • 深入解析Cortex-M4内核架构:从寄存器、NVIC到FPU的嵌入式实战指南
  • 植物大战僵尸PVZ:BT版下载
  • AI驱动测试自动化:五大核心价值点助力开发者高效提效
  • 主动避免分支预测失败
  • 时间序列预测实战:从指数平滑原理到R语言实现
  • 北京华恒智信破解餐饮公司服务质量参差不齐难题
  • WarcraftHelper终极指南:魔兽争霸III性能优化插件完全教程