首页 > 技术文章 > 一维数组

SYDevil 2017-11-05 16:35 原文

1.意义

在程序中可以使用下标变量,即说明这些变量的整体为数组,数组中的每个变量的数据类型是相同的。
当数组中每个元素都只带有一个下标时,称这样的数组为一维数组。
一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。一维数组是计算机程序中最基本的数组。二维及多维数组可以看作是一维数组的多次叠加产生的。
数组是计算机编程中的重要概念,运用数组可以方便地处理大规模的数据。

2.定义方法

	数据类型 数组名[定义的个数]
		或者
	比如:
	    int a[100]     //合法   
	    double b[100]  //合法
	    int c[n]       //不合法
	    但是
	    {
	    int n;
	    cin>>n;//或scanf("%d",&n)
	    int d[n];
	    }              //合法
	   
	   也就是说,可以先给变量赋值,再定义“a[变量]”。

3.实际应用

题目

例题1
	题目描述
	将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。
输入
	输入为两行:第一行数组中元素的个数n(1<n<100);第二行是n个整数,每两个整数之间用空格分隔。
输出
输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。

代码:

#include<iostream>
using namespace std;
int main()
{
	int a[10000],s,i;
	cin>>s;
	for(i=1;i<=s;i++)
		cin>>a[i];
	for(i=s;i>=1;i--)
		cout<<a[i]<<' ';
	return 0;
}
例题2
<noip2005复赛普及组第二场 第二题>
	校门外的树
描述

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在
数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已
知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些
区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上
还有多少棵树。 
    对于20%的数据,区域之间没有重合的部分;
    对于其它的数据,区域之间有重合的情况。
    

输入
第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出
包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

样例输入

 500 3
 150 300
 100 200
 470 471

样例输出

 298
 

代码:

	#include<iostream>
	using namespace std;
	bool flag[10000];
	int main()
	{
		int k,i,j,m,n,s,t=0;
		cin>>k>>s;
		for(i=1;i<=s;i++)
		{
			cin>>m>>n;
			for(j=m;j<=n;j++)
				flag[j]=1;
		}
		for(i=0;i<=k;i++)
			if(flag[i]==0)
				t++;
		cout<<t;
		return 0;
	}

推荐阅读