一.知识点
1.数组定义
数组是按顺序排列的一组具有相同类型的变量的集合,它是一种构造数据类型。
2.a[5]
任何一个元素都称为数组元素或下标变量,一般情况,a[5]是指a[0],a[1],a[2],a[3],a[4],而下标5是指该数组包含5个元素。若无特殊要求,数组的下标都是从零开始的,下标越界是大忌。
3.在主函数之外定义的数组为全局数组,数值初始化;之内为局部数组,数值未初始化。数组 要定义为全局数组。
4.二维数组
数组名[第一维长度][第二维长度],例如a[5][5];
5.数组初始化
int a[5]={1,23,45,21,7};
int a[2][5]={{1,2,3,4,5},{6,7,8,9,10}};
6.字符数组
①.字符数组是指元素为字符的数组。字符数组是用来存放字符序列或字符串的。字符数组也有一维、二维和三维之分。
②.字符数组的定义格式
字符数组定义格式同于一般数组,所不同的是数组类型是字符型,第一个元素同样是从ch1[0]开始,而不是ch1[1]。具体格式如下:
[存储类型] char 数组名[常量表达式1]…
例如:
char ch1[5]; //数组ch1是一个具有5个字符元素的一维字符数组
char ch2[3][5]; //数组ch2是一个具有15个字符元素的二维字符数组
7.常用算法
①.冒泡排序
#include<iostream>
#include<iomanip>
using namespace std;
const int n=10;
int t,a[n+1]; //定义数组
int main()
{
for (int i=1; i<=n; ++i) cin>>a[i]; //输入十个数
for (int j=1; j<=n-1; ++j);//冒泡法排序
for (int i=1; i<=n-j; ++i) //两两相比较
if (a[i]<a[i+1]) //比较与交换
{t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
for (int i=1; i<=n; ++i)
cout<<setw(5)<<a[i]; //输出排序后的十个数
cout<<endl;
return 0;
}
②.折半查找
while(low<=high)
{
mid=(low+high)/2;
if(a[mid]>temp)
high=mid-1;
else if(a[mid]<temp)
low=mid+1;
else
couture<<a[mid]<<endl;
}
cout<<"Not Found!"<<endl;
}
二.解决的问题
1.与矩阵相关的问题
2.实际问题:校门外的树,石头剪刀布,做游戏,有趣的跳跃,年龄与疾病等等。
三.感想
有关数组内容的部分题目,自己很难理解透,所以在写代码时会漏洞百出,在遇到很长的题目时,也会出现不想去花时间去想去做的情况,但是看到自己修改了一遍又一遍的代码终于AC了,心里也还是很高兴的。