数组学习内容及感悟

数组学习内容及感悟

数组内容
1一维数组的定义
数回的定义数是一组相同类型的变量(数组可以是一维,二维,多维的)
顺序排列,同种类型。使用一堆数组时,一般是从0开始,且程序中不能用省略号表示。
应用使用循环和数组后,代码不显冗长。数组经常应用大批量、同一类型的数据处理中
类型标织符 数组名【常量表达式】a数组大小须是正的,不能是变量b.数组定义后,初值是随机值。.
2一维数组的元素引用
引用格式 数组名【下标】,下标只能为整型常量或整形表达式,值须在数组定义的下标范围内,否则会出现下标越界错误。定义数组个数后当大一点。
3一维数组的存储结构数组在计算机单元是连续存储的,数组所占内存大小:数组元素类型的大小乘以数组元素的个数,根据首地址和数组类型,可以计算该数组中任意元素的起始位置。
4一维数组的输入和输出
(1)键盘读入
int h[100];
for(i=0;i<100;i++)cin>>h[i];
(2)直接赋值
(3)memset函数
按字节赋值,char型数组,int型数组,一般赋值0和-1;头文件:#include
作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快的方法
(4)fill函数
按元素进行赋值,可以赋任何值;头文件:#include.
例题解析走楼梯
分析:假设f(i)表示走到第i级楼梯的走法,走到第i(i>2)级楼梯有两种可能,一种是从第i-1级走,一种是从第i-2级走。f(i)=f(i-1)+f(i-2),边界条件f(1)=1,f(2)=2.
本质上,f(i)构成了斐波那契数列。
int n,i,f[31];
scanf("%d",&n);
f[1]=1,f[2]=2;
for(i=3;i<=n;i++)f[i]=f[i-1]+f[i-2];
for(i=1;i<=n;i++)printf("%d",&f[i]);
return 0;
5一维数组的插入删除
插入:
N个人排队情况可以数组表示,q[i]表排在第i个位置的人。定义数组时,多定义一个位置,然后重复执行:q[i+1]=q[i],最后再执行q[x]=q[n+1].
删除:
用后一个数覆盖前一个数。
6一维数组的查找统计
顺序查找:从前往后,将数组中的元素依次与要查找的数x进行比较。
二分查找:有序的,又称折半。
7一维数组的元素排序
按照某个关键字的大小,将若干个对象从小到大进行重新排列。
选择排列:通过打擂台,选出最小的,放在数据最前面。
冒泡排列:从第一个开始,依次不断比较相邻的两个元素,如果逆序就交换。
插入排列:分为前后两段,前一段排好序,后一段待排序,每一趟都是把后一段的第一个数插入前一段的某一个位置。
8二维数组
一维数组的每一个数组又是一个数组。
例题:1回型方阵。2杨辉三角。3数字三角形
感悟
最近学习了数组相关的知识。数组,其实就是一组具有相同类型变量的集合。数组包含数组名和数组元素。程序可以通过数组的下标实现对数组元素的访问。当变量数目很多时,再用以前的方法,即定义一个变量用一个变量,就很难解决问题,这时数组就可以很简单的代替多次定义的难题。
随着行数的增加,错误越来越多。所以在写程序时,一定要专注,遇到错误了,先要自己反复研读(走查,甚至在纸上写出每一步的循环过程),分析代码有没有问题。有时怎样也找不出错误,看的头疼,是因为没有跳出之前的代码,一直在原来的代码中,读来读去也感觉没有问题。这时要及时跳出自己的代码,回去再看看题,而看题的时候,要当成新题来读,以免陷入原来的代码中。仔细专注!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值