一、一维数组的定义
心得:①理解数组的会义;
②学会一维数组的定义;
③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]):
总结:要多做题,不要畏惧,很多题其实主要难在对题意的理解上,
还有规律比较难想到,要多总结,多学习,加油。