一.知识点
1.数组由数组名,数组下标,数组元素组成。
注意数组下标,从0开始,且注意下标不要越界。
2.在定义数组时不能使用变量定义数组大小
cin>>n;int a[n];也不可以
定义但未初始化的数的值是随机数
3.数组定义为全局数组,不能在某个函数内定义
4.a既代表了数组类型,又代表了首地址。
5.两个数组相等,要用循环赋值。输出一个数组,也要用循环输出。
6二维数组,应写做a[x][y]而不是a[x,y]
7.字符串中,结束符占用一个字节,因此字符串常量占用字节数等于字符串的字节数加1
8.printf语句输出字符串不包括结束符,puts语句一个字符串和一个换行符
二.学习收获
1.筛法,预处理找素数,完全平方数
for(i=2;i<=n;i++)
a[i]=1;
for(i=2;i<=sqrt(n);i++)
if(a[i])
for(j=2;j<=n/i;j++)
a[i*j]=0;
2.对数组内周期赋值
石头剪刀布(周期为m,总数为n,已知第一个周期内的数值)
for(i=1;i<=m;i++)
for(j=m+1;j<=n;j+=m)
a[j]=a[i];
3.相似类型题
扫雷,细菌的繁殖与扩散
题意分析,通过一个量确定另一个量的变化,分析好量,理清逻辑关系。
三.学习感悟
个人感觉,数组这一章,题目的内容比前面丰富很多,解决的问题也更多了。而且在做数组的练习题时,综合了前面所学的循环与选择的知识点,难度又加大。这次数组练习,我知道了自己存在一些问题,自己常见的错因,一是循环嵌套太多,没有优化,二是循环条件写错,三是会出现超时问题。通过和他人的交流,我知道我在程序的练习上还是缺乏,以至于出现了很多问题:比如读题不清、考虑不周,之前存在的超时问题等等。因为自己知道最近几周在程序上并没有用心,对自己进行检讨,并将重拾对程序的认真,继续加油。