一维数组

一维数组

一维数组的基本概念

1
2
3
4
5
6
7
(1)含义:一维数组是用来表达类型相同的元素的集合,集合的名字就是数组名。    
(2)定义:一维数组的声明方法如下:
类型名 数组名[元素个数];
其中“元素个数”必须是常量或常量表达式,不能是变量,而且其值必须是正整数。
(3)下标:数组里的元素都有编号,元素的编号叫下标。通过数组名和下标, 就能访问元素。
(4)大小: 数组元素是连续存放的,所以 a数组占用大小总共为 n × sizeof(数组类型)个字节。(数组大小也可以用 sizeof(a)计算)
(5)注意:数组的下标是从0开始,一般下标为0的元素不使用,所以定义数组要用到小尾巴(声明数组比规定的数组个数多几个元素);

数组的输入(正序输入)

1
2
3
4
for(int i=1; i<=n; i++)  //n表示元素个数
{
cin >> a[i];
}

数组的输出

1
2
3
4
5
6
7
8
9
10
//如果要顺序输出,for循环从1到n;
for(int i=1; i<=n; i++)
{
cout << a[i] << " ";
}
//如果要逆序输出,for循环从n到1;
for(int i=n; i>=1; i--)
{
cout << a[i] << " ";
}

最大值和最小值及其第一次出现的位置

使用变量maxm来保存第一个元素,让剩下的元素依次跟maxm来比较,大于maxm就更新maxm,否则就继续下一个元素。最后即可找到最大值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>

using namespace std;

int main()
{

int a[100],x,ans=0,n;
cin >> n;
for(int i=1; i<=n; i++) //输入数组
{
cin >> a[i];
}
int maxm = a[1],minm = a[1];
int maxi=1,mini=1;//maxi表示最大值第一次出现的位置,mini表示最小值第一次出现的位置

for(int i=1; i<=n; i++)
{
if(a[i] < minm) //最后一次出现的位置只需要小于等于即可
{
minm = a[i];
mini = i;
}
if(a[i] > maxm)
{
maxm = a[i];
maxi = i;
}
}

cout << maxm - minm; //输出最大值和最小值的差
return 0;
}

一维数组线性搜索

从下标1开始到n结束,使用if判断出符合题意那就做对应的操作,否则继续下一个判断。

1
2
3
4
5
6
7
for(int i = 1; i <= n; i++)
{
if(a[i] == key) //如果a[i] 等于 key 就执行if语句里面的信息
{
//
}
}