数组学习总结

小编 2026-06-24 阅读:819 评论:0
数组的使用是为了便于储存和处理较为庞大的数据,当一个问题十分简单而具有巨大数据时,如果不利于数组来写程序,这个程序将会变得很长,费时费力,利用数组可以将庞大的数据存进去,简短程序,化繁为简,一...

数组的使用是为了便于储存和处理较为庞大的数据,当一个问题十分简单而具有巨大数据时,如果不利于数组来写程序,这个程序将会变得很长,费时费力,利用数组可以将庞大的数据存进去,简短程序,化繁为简,一目了然。
数组的类型有一维数组、二维数组、多维数组和字符数组。
一.一维数组
具有下标类型的数据类型是数组,a[i]来代替a1,a2,a3,…,an,方括号中的i称为下标。
当数组中每个元素只带有一个下标时,就是一维数组。
1.格式:
类型标识符 数组名[ 常量标识符 ]
细节1:常量表达式可以是常量和符号常量,但一定不能是一个变量。
细节2:数组包括的元素下标从0开始。
2.初始化
类型标识符 数组名[ 常量表达式 ]={值1,值2,…}
例如 int a[5]={1,2,3,4,5}
细节1:仅对前几个元素赋值时,剩余的元素默认为0。
细节2: int a[ i ]={ }即将元素全赋值为0。
细节3:在主函数之外定义数组未赋初值时,元素默认为0,在主函数内部,被默认为一个随机大数。
3.数组越界
使用数组时应注意不要越界,即在定义元素个数的下标范围内使用,可以在定义数组时把范围定的比要求条件更大些,以防止越界的发生。
4.排序问题
利用数组可以使解决排序问题更加简洁
1.选择排序

{
int i,j,min;
for(int i=0;i<n-1;i++)
{
min=i;
for(int j=1;j<n;j++)
if(a[j]<a[min])
min=j;
if(min!=i)
swap(a[i],a[min])
}
2.冒泡排序

for(int i=1;i<=n;++i)
cin>>a[i];
for(int i=1;i<=n-1;++i)
for(int j=1;j<=n-i;++j)

if(a[j]<a[j+1]) swap(a[j],a[j+1);
}
3.插入排序

{
for(i=1;i<num;i++)
{
l= i-1;temp=a[i];
while(l>=0&&a[l]>temp)
{
a[l+1]=a[l];
l–;
}
a[l+1]=temp;
}
}
二.二维数组
当一维数组元素的类型也是一维数组时,便构成了“数组的数组”,即二维数组。
格式: 数据类型 数组名 [ 常量表达式1 ][ 常量表达式2];
二维数组可以看成一个矩阵,下标分别表示行和列。

利用双重嵌套循环输入二维数组,可以实现矩阵的输入和处理。
三.字符数组
元素为字符的数组叫字符数组。可以存放字符序列或者字符串。
1初始化
(1)用字符初始化数组
例如char a[2]={ ‘ a‘ ,‘ b‘};每个字符用单引号扩起来,逗号分隔。
易混点:字符数组可以存多个字符,也可以存字符串。两者的区别是字符串有结束符(\\0)。在一维数组中存带有结束符的多个字符称为字符串,但是一维数组不等于字符串。
(2)用字符串初始化数组
要注意字符串的长度应小于或等于字符数组的范围。
(3)元素赋值
可以给数组元素单个赋值
字符常量和字符串常量的区别:
1.字符常量由单引号括起来,字符串常量用双引号。
2.字符常量只能是单个字符,字符串常量则可以是多个字符。
3.可以把一个字符给一个字符变量,但不可以把一个字符串常量给一个字符变量。
4.字符常量占一个字节,字符串常量占的比字符串字节数加1。
字符串的输入输出
输入
用scanf时得到的一段文字没有空格,使用时也不需要加取地址符,输入多个字符串时以空格隔开。
用gets时读入一整行文字包括空格,只能输入一个字符串,gets(字符串名称)。
输出
printf(“%s”,字符串名称);
输出只能是字符串名称,不能是数组元素,printf(“%s”,a[5])是错误的。
puts(字符串名称)
输出一个字符串和一个换行符。

字符串处理函数的头文件是string
最近做题常用的是strlen(字符串名)计算字符串长度,终止符不算在长度之内。

数组可以适用于大数据的分析计算和控制处理,一维数组将大量数据存入,是繁杂的程序简化,二维数组可以实现类似矩阵类型的问题,将数据存储达到二维的层次,以解决更为复杂的几何和实际问题,字符数组与二维数组等结合起来使用,让几何矩阵问题得以解决,避免繁冗的计算,找出规律充分发挥计算机的高效率。

感悟
学了数组以后在回去看看原来的问题,甚至是原来觉得很困难的不好想的难题,利用
新学的数组知识,难题也不是太难,一个问题往往有多种解决办法,用数组代替之前的循环可以简化程序,同时也更易理解。当掌握知识越来越多的时候,也就是难题越来越少的时候。

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表