数组结构总结

一、一维数组的定义

心得:①理解数组的会义;

②学会一维数组的定义;

③O掌握一维数组元素引用和物理存储方式;

注意:①在C++中,使用一维数组时,一般是从0开始编号,h[i]

就表示i+1个元素,且不能定义h[i];

②值必须在数组定义的下标范图内,否则会出现下标越界错误,

不能一次引用整个数组只能个引用数组的单个元素;

⑥在输入,输出个数组前,要先定义该数组且一般比规定大一

二、一维数组的输入与输出

心得:①熟练学会一维数组的输入输出操作;

②学会、应用一维数组解决一些实际问题,

注意:①输入形式:int h[100];

for(i=0;i<100;i++)cin>>h[i];

②直接赋值:int h[100],a[20];

for (i=0;i<=100;i++)h[i]=0;

for(i=0;i<20;i++)a[i]=i*2+1;

③fill函数:#incdude<algorithm〉;

fill(a,a+10,5);//将a数组的前10个元素赋值为5

三、一维数组的插入删除

四、一维数组的查找统计

心得:①学会、并应用一维数组的插入和删除解决排队插队问题;

②利用查找统计可解决抽奖、比身高等问题;

注意:①插队问题关键语句

              for(i=n;i>=x;i--)q[i+1]=q[i];

              q[x]=q[n+1];

            ②如果数组中的元素是有序的(递增或者递减),可以采用二分查找;

五、一维数组的元素排序

心得:①排序主要有选择、冒泡、插入排序;

         ②掌握并应用排序算法解决一些实际问题;

注意:①选择排序格式:

for(i=1;i<=n;i++)cin>>h[i];

(i=1;i<=n;i++){k=i;

for(j=i+1;j<=n;j++)

if(h[i]<h[k])k=j;

temp=h[i];h[i]=h[k];h[k]=temp;}

六、一维数组的应用举例

心得:①学会跟踪数组元素调试程序;

②综合应用一维数组的基本操作解决一些实际问题;

注意:①其实,分析数据发现一个重要特征:桶排序:定义一个int 型数组mum[1001],numLxl记录整数x出

现的次数,初始化都为0,每读到一个数x,就执行num[x]=num[xJ+1。输出时,从0~1000穷举

x,每个x输出num[x]次;

七、二维数组的定义和操作

心得:①理解二维数组及其存储结构;

②掌握二维数组的初始化、输入输出等基本操作;

注意:①二维数组定义格式  int h[4][5];

②二维数组输入格式用两个循环语句即可;

八、二维数组应用举例

九、数字方阵

心得:①要体会下标运算,以及多尝试找规律;

注意:①蛇形方阵关键a[i][j]+a[n+1-i][n+1-j]=n*n+1;

         ②n阶奇数方阵关键a[1][n/2+1]

        ③数字三角形(左斜)关键a[i][j]=j-i+1

十、字符数组

心得:①掌握字符数组的输入输出方法;

②应用字符数组解决一些实际问题:

注意给字符数组赋值的方法很多,例如:

用赋值语句逐个元素赋值:letter[0]='a';

用cin 输入整个数组:cin>>letter;

用gets 读入整个数组:gets(leter);

用getchar 逐个读入:leter[0]=getchar();

字符数组的输出方法也很多,例如:

用cout 输出整个数组:cout>>letter;

用cout 逐个元素输出cout>>letter[0]…

用putchar逐个元素输出:putchar(leter[0]):

总结:要多做题,不要畏惧,很多题其实主要难在对题意的理解上,

还有规律比较难想到,要多总结,多学习,加油。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值