C++编程学习(第20天)

发布于:2025-08-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

什么是数组?

如果有100个互不关联的数据,可以分别把它们存放到100个变量中。但是如果这些数据是有内在联系的,是具有相同属性的,就可以把这批数据看作一个整体,称为数组。

所谓数组,就是用一个统一的名字代表这批数据,而用序号或下标来区分各个数据。数组中的数据称为数组元素。

概括的说,数组是有序数据的集合。要寻找一个数组中某一个元素必须给出两个要素,即数组名和下标。数组名和下标唯一地标识一个数组中的一个元素。

数组是有类型属性的,同一数组中的每一个元素都必须属于同一数据类型。

引用数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系。熟练地利用数组,可以大大提高编程和解题效率,加强程序的可读性。由于在程序中无法用下角表示下标,因此在计算机高级语言中都用括号来表示下标。C和C++都用方括号来表示下标。

定义和引用一维数组

定义一维数组

定义一维数组的一般形式为

类型名 数组名[常量表达式]

例如:int a[10];表示组名为a,此数组为整型,有10个元素。

需要注意的是

1、数组名命名规则和变量名相同,遵循标识符定名规则。

2、用方括号括起来的常量表达式表示下标值。

3、常量表达式的值表示元素的个数,即数组长度。

4、常量表达式中可以包含常量、常变量和符号常量,但不能包含变量。也就是说,不允许对数组的大小作动态定义。

引用一维数组的元素

数组必须先定义,然后使用,只能逐个引用数组元素的值,而不能一次引用整个数组中的全部元素的值。

数组元素的表示形式为

数组名[下标]

下标可以是整型常量或整型表达式。

如:定义一个整型数组a,把0-9共10个整数赋给数组元素a[0]-a[9],然后按a[9],a[8]···,a[0]的顺序输出。

#include <iostream>
using namespace std;

int main()
{
	int a[10];
	for (int i = 0; i <= 9; i++)	//下标中的数字不能大于数组的长度
		a[i] = i;
	for (int j = 9; j >= 0; j--)
		cout << a[j]<<" ";
	cout<< endl;
	return 0;
}

//结果为:9 8 7 6 5 4 3 2 1 0
一维数组的初始化

对数组元素的初始化可以用以下方法实现。

1、在定义数组时对全部数组元素赋予初值。

如:int a[10]={0,1,2,3,4,5,6,7,8,9}; 将数组元素的初值依次放在一对花括号内。

2、可以只给一部分元素赋值。

如:int a[10]={0,1,2,3,4}; 表示前五个元素赋初值,后五个元素值默认为0。

3、在对全部元素赋初值时,可以不指定数组长度。

如:int a[5]={0,1,2,3,4};可以写成int a[]={0,1,2,3,4};系统会据此自动定义a数组的长度为5,但若被定义的数组长度与提供初值的个数不相同,则数组长度不能省略。

如:用数组来求斐波那契数列问题。

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int i;
	int fibonacci[30] = { 1,1 };
	for (i = 2; i < 30; i++)
	{
		fibonacci[i] = fibonacci[i - 2] + fibonacci[i - 1];
	}
	for (i = 0; i < 30; i++)
	{
		if (i % 10 == 0)
			cout << endl;
		cout <<setw(8)<<setiosflags(ios::left)<< fibonacci[i];
	}
	return 0;
}

结果如下:

实例

编写程序,用气泡法对10个数排序。(由小到大)

#include <iostream>
using namespace std;

int main()
{
	int a[10];
	int i, j, temp;
	cout << "请输入10个数字:";
	for (i = 0; i <= 9; i++)
		cin >> a[i];
	cout << endl;
	for (j = 1; j <= 9; j++)
		for(i=0;i<=9-j;i++)
			if (a[i] > a[i + 1])
			{
				temp = a[i];
				a[i] = a[i + 1];
				a[i+1] = temp;
			}
	cout << "排序后的数字为:";
	for (i = 0; i <= 9; i++)
		cout << a[i] << " ";
	cout << endl;
	return 0;
}

结果如下:


网站公告

今日签到

点亮在社区的每一天
去签到