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

C语言(5)

第四章 数组

定义:
数组是一组相同数据类型 有限个数据的集合。
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 .冒泡

升序

(1,2,3,4,5,6,7,8,9)
相邻元素依次比较
如果前面的数大,交换两数 ,内层循环 ++ 一次
数组遍历一次 ,会找到最大值,并存储在数组的最后。外层循环 ++ 一次

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;
}
}
}

降序

(9,8,7,6,5,4,3,2,1)

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;
}
}
}

http://www.jsqmd.com/news/754668/

相关文章:

  • Cursor编辑器资源宝库:主题插件与AI提示词全攻略
  • 初创公司如何借助 Taotoken 降低大模型 API 的接入与试用门槛
  • 基于Claude API的智能体服务器框架:工程化AI应用开发实践
  • 毕业季论文救星:百考通AI一站式解决查重与降重难题
  • Lemonade:开源本地AI服务器,打造私有化AI工作站
  • Java Spring Security 如何防止 JWT 密钥泄露导致签名伪造?
  • Rank-GRPO:强化学习优化对话推荐系统的新框架
  • 【LeetCode 刷题笔记】34. 在排序数组中查找元素的第一个和最后一个位置 | 二分查找经典刷题题解
  • RooMolt:基于最小描述长度与原子化MCP的AI自动化工作流实践
  • 通过动态规划优化插电式混合动力电动汽车 (PHEV) 能源管理(Matlab、Simulink代码实现)
  • 别再只调PWM了!STM32/CH32定时器的单脉冲模式,在电机刹车和精准开关上的妙用
  • Windows音频设备一键切换神器:voicemode命令行工具详解
  • ROCKET模型压缩技术:校准引导的动态剪枝与量化
  • 【RK3506实战-01】 BootLoader 全流程与实战优化
  • 3D场景理解与开放词汇检测技术解析
  • ARM汇编LDR指令详解:寄存器相对寻址与优化技巧
  • Kubernetes部署策略实战:从滚动更新到金丝雀发布的完整指南
  • Happy Island Designer终极指南:5步打造你的梦想岛屿规划
  • 4-bit/cell NAND技术:存储密度革命与工程实践
  • 开源AI模型部署与可解释性实践:CentminMod环境下的OpenClaw全栈指南
  • Python自动化快照管理工具:设计原理、插件化架构与生产实践
  • ReViSE框架:AI视频编辑的自反思学习技术解析
  • SAP MD04库存与需求字段业务解析
  • 【算法刷题笔记】全题型导航目录
  • 创业团队如何利用Taotoken低成本快速验证多个AI产品创意
  • 告别Burp/Fiddler抓不到包:用Frida+r0capture搞定安卓非HTTP/S协议流量(附详细配置避坑)
  • 地平线旭日X3开发板:嵌入式AI与边缘计算实战指南
  • OpenMMReasoner:多模态推理模型微调与强化学习框架解析
  • 保姆级教程:非华为笔记本也能用上华为多屏协同,手把手搞定NFC卡贴和SN码修复(Win10实测)
  • AI编程时代Node.js后端安全:VibeCure如何防范API滥用与天价账单