news 2026/10/29 18:27:24

C1002数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C1002数组

一.数据结构

1.数据结构: 一种可以存储多个数据的结构 线性结构 树状结构 网状结构 组合结构

2.主要作用: 帮我们更方便的保存数据 、查找数据、分析数据、数据处理(删除 替换 排序...)

二.单位换算

1.bit-二进制位 byte-字节

整数型: int(4*8=32字节) long long(8*8=64字节)

浮点型: float(4*8=32字节) double(8*8=64字节)

字符型: char(1*8=8字节)

1byte = 8bit

1int = 4byte 1long long = 8byte

1float = 4byte 1double = 8byte

1char = 1byte

可用

int byte= sizeof(long long);

printf("%d\n", byte);

确定某变量的字节数

2.b kb MB GB TB PB //1024换算

1kb = 1024byte

1mb = 1024kb

1gb = 1024mb

1tb = 1024gb

三.数组

1.数组:一个可以存储多个同类型数据的数据结构

打印输出数组中的每个数eg.

int arr[10] = {10086, 10010, 10000, 5, 4, 3};

for (int i = 0; i < 10; i++) {

printf("%d\n ,", arr[i]);

}

2.格式: 数据类型 数组变量名[数组长度];

eg.1>int arr1[10];// 创建了一个长度为10的整数型数组,其中可以存储10个int类型的数,

没有进行初始化,其中的默认数据是乱的

2>int arr2[10]={0};// 默认全部初始化为0

3>int arr2[10]={10086,10010,10000,5,4,3};// 默认全部初始化为0

3.数组长度计算:可以用函数sizeof();计算的长度是以字节为单位

eg.int arr[10] = {10086, 10010, 10000, 5, 4, 3};

int size = sizeof(arr)/ sizeof(int);

printf("该数组的长度:%d\n", size);

4.内存: 以byte为单位进行读写操作

5.数组的下标:通过一个编号来访问数组中不同位置的数据

1>规则: 从0开始 依次递增1 ,任何一个数组的最大下标是: 数组的长度-1

2>注意: 下标不要超过这个范围 ,c语言中不会报错 ,你的数据不受到保护

3>格式: 数组名[下标]

4> ps: 存储、替换、修改: 数组名[下标]=值;
取出 拷贝值: 变量名=数组名[下标];
5>示例1:int n = arr[3];
printf("arr这个数组的第四个数据:%d\n", n);

示例2:arr[2] = 19999;
printf("%d \n", arr[2]);

6.应用

(1)先存储大量的数据

(2)查找某个数据是否存在

(3)批量替换

(4)平均值 求和

(5)最大值 、 最小值

(6)排序

(7)倒序输出

(8)次数统计

7.例题

给定一个字符串 长度上限为1000 内容都是字母,大写小写都包含,要求分别输出其中重复度最高的大小写字母

char str[1000] ="asdbnasdiojkaslkdhasdinjkasndjkhasidklalkdhasdinjkasndjkhasilasdnklasjljkasdnAKLSDKLsddklasdnklasjljkasdnAKLSDKLsdilkdhasdinlkdhasdinjkasndjkhasidklasdnklasjljkasdnAKLSDKLsdiasjljkasdnAKLSDKLsdilkdhasdinjkasndjkhasidklasdnklasjljkasdnAKLSDKLsdisdnkllkdhasdinjkasndjkhasidklasdnklasjljkasdnAKLSDKLsdiasjljkasdnAKLSDKLsdioklaskldNASKLDNKLASDNKLASDNKLASNDKLASFDBSASNNCBVNMZLPLOIUJKOQWEWQEFNCNNAWSOWDASDNNASDASDASDASDASDASD";

解:

1>步骤一

//计算真实长度即字符个数

方法1:自己统计
int len = 0; for (int i = 0; i < 1000; i++) { char c1 = str[i]; if (c1 == 0) { break; } else { len++; } } printf("str 字符个数:%d\n", len);
方法2:用函数统计
int len2 = strlen(str); printf("str 字符个数:%d\n", len2);

备注:

// 字符串最后一个字符是结尾符
// 字符串的定义: char xx[字符数+1];
//示例:char name[6] = "hello";

2>步骤二

//创建2个长度26的整数数组 一个表示小写 一个表示大写 0-25下标 a-z A-Z ASCII a-z(97~97+25)

A-Z(97-32~97-32+25)

char c1 = 'A'; printf("%d", c1); int s1[26] = {0}; int s2[26] = {0}; for (int i = 0; i < len; i++) { char c1 = str[i]; if (c1 >= 'a' && c1 <= 'z') { // 找出s1数组中对应下标中的元素 +1 s1[c1 - 'a']++; } else { s2[c1 - 'A']++; } } for (int i = 0; i < 26; i++) { printf(" %c : %d ,", i + 'a', s1[i]); } for (int i = 0; i < 26; i++) { printf(" %c : %d ,", i + 'A', s2[i]); }
3>步骤三

// 查找最大值

int max1 = 0; int maxi = 0; for (int i = 0; i < 26; i++) { int m = s1[i]; if (m > max1) { max1 = m; maxi = i; } } printf("\n"); printf("小写字母中出现次数最多的是:%c", maxi + 'a');

四.作业

// 写一篇数组的技术笔记: 数组的定义 格式 操作语法 用处

// 刷洛谷题目: 入门4 数组 3道题目

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 6:50:09

⭐STM32与OpenMV视觉垃圾分类回收/道路垃圾清理机器人系统设计

摘要本项目设计并实现了一款基于 STM32 与 OpenMV 视觉模块的智能垃圾回收机器人&#xff1a;三路灰度传感器实现自主循迹&#xff0c;OpenMV 摄像头实时识别可回收、厨余、其他三类垃圾&#xff0c;三自由度机械臂完成抓取与分类归位投放&#xff0c;红外传感器实现到位停车与…

作者头像 李华
网站建设 2026/10/29 8:21:46

用户口碑佳的AI论文工具势力榜(2026 最新版)

基于综合性能、学术适配度、用户口碑和功能完整性&#xff0c;以下是当前主流AI论文写作工具的权威排名&#xff0c;按综合推荐指数从高到低排列&#xff0c;并标注核心优势与适用场景。&#x1f3c6; 第一梯队&#xff1a;全流程学术解决方案&#xff08;★★★★★&#xff0…

作者头像 李华
网站建设 2026/10/29 15:05:24

PRD与SOP的本质区别、应用场景及落地实践

产品核心术语科普&#xff1a;PRD与SOP的本质区别、应用场景及落地实践 在互联网、ToB企业服务、政企数字化项目中&#xff0c;PRD和SOP是出现频率最高、但最容易被混淆的两类专业文档。 很多新人产品、业务运营、研发人员都会有一个误区&#xff1a;把操作步骤当成需求&#x…

作者头像 李华
网站建设 2026/10/29 6:32:20

AI时代的实时分析三大范式:从Apache Doris到SelectDB实践

这几年实时分析圈子的变化&#xff0c;真的比我预想中要快。Apache Doris 是开源实时数据仓库里绕不开的项目&#xff0c;我和团队在好几套系统里用过它&#xff1b;SelectDB 则是 Doris 背后的商业化云服务&#xff0c;把同一套引擎搬到云上做成托管产品。真正让我意识到需要重…

作者头像 李华