前言:
本文紧接上文,将详细讲述C++中数组的使用。
一,给数组元素赋值。
# include <iostream>
using namespace std;
int main(){
int test[5];//声明一个int数组,有5个元素
test[0]=10;//给数组赋值
test[1]=20;
test[2]=30;
test[3]=40;
test[4]=50;
cout<<test[0]<<endl;//输出数组[0]中的值
return 0;
}
输出结果为:
这段代码声明了一个含有五个元素的数组,并将其中一个进行输出。
可以加入一些函数,让其实现更多的功能。
# include <iostream>
using namespace std;
int main(){
int test[5];//声明一个int数组,有5个元素
test[0]=10;//给数组赋值
test[1]=20;
test[2]=30;
test[3]=40;
test[4]=50;
for (int i = 0; i < 5; i++)
{
cout<<"第"<<i+1<<"个元素的值为"<<test[i]<<endl;//输出数组元素
}
return 0;
}
我们可以通过使用数组和循环语句轻松处理大量数据。
二,初始化数组。
数组有很多编写方法,它可以同时完成数组的声明与赋值两项任务,这种行为被称为数组的初始化。
语法:
类型名称 数组名称 {元素数量}={值0,值1,值2.....}
上文中的数组就饿可以初始化为:
int test[5]={10,20,30,40,50};
同时,在初始化数组时,无需再[]中指定数组的数量,也就是说,以下两行代码运行结果一致:
int test[4]={20,30,40,50};
int test[6]={20,30,40,50};
收for循环影响,所输出的值以[]内的为准,若数组的值超出,则输出0。
三,数组的下标。
例如:
int test[5];//声明一个int数组,有5个元素
test[0]=10;//给数组赋值
test[1]=20;
test[2]=30;
test[3]=40;
test[10]=50;
则会输出错误的值或报错。
使用数组时应避免像超出数组大小的元素历代入值。
四,从键盘输入数组的值。
# include <iostream>
using namespace std;
int main(){
int a;//定义整数变量a
cout << "请输入需要对几个人的成绩进行排序:" ;
cin >> a;//键盘输入a的值
int b= a;//将a的值赋给b
int text[b];//定义一个整型数组text,长度为b
cout << "请输入"<<b<<"个人的成绩:" << endl;//输出提示信息
for(int c = 0; c < b; c++){//循环输入b个成绩
cin >> text[c];//键盘输入第c个成绩
}
for (int d = 0; d< b; d++)//循环输出b个成绩
{
cout <<"第"<< d+1 << "个人的成绩是"<< text[d] << endl;//输出第d个成绩
}
return 0;
}
运行结果为:
这段代码将用户键盘输入的信息收录进数组中,对其进行排序后再进行输出。
五,对数组的内容进行排序。
代码为:
# include <iostream>
using namespace std;
int main(){
int num;//定义常量,表示输入的人数
cout<<"请输入人数:";
cin>>num;
int text[num];//定义数组,表示输入的分数
cout<<"请输入"<<num<<"个人的分数:"<<endl;
for(int i=0;i<num;i++){
cin>>text[i];
}//获取输入的分数
for ( int s=0;s<num-1;s++)//冒泡排序
{
for ( int t=s+1; t<num;t++)//比较相邻两个数的大小
{
if (text[s]<text[t])//如果前一个数小于后一个数
{
int temp=text[s];//定义一个临时变量,用于交换两个数的位置
text[s]=text[t];//交换两个数的位置
text[t]=temp;//交换两个数的位置
}
}
}
for (int j=0;j<num;j++)//输出排序后的分数
{
cout<<"第"<<j+1<<"个人的分数是"<<text[j]<<endl;
}
return 0;
}
这段代码对数组元素进行排序,运行结果为:
这段代码对数组的元素进行了将续篇列。
首先,将数组的每个元素都与数组的第一个元素进行比较,如果比第一个元素大们则替换为第一个元素。同理可得出第二大,第三大的数,以此类推。这就是冒泡排序的一种。
同时为了替换元素,需要一个余姚替换元素相同数量的变量,因此在排序过程中使用了变量temp。
六,多维变量。
上文所讲述的是数组排列成一排的盒子形象,但在工作中,有时需创建像许多盒子排列的多维数组,。
多维数组的生命结构如下:
类型名称 数组名称 “元素数量” “元素数量”
具体使用为:
int test[2][3];
这就是声明了一个二维数组,其可以存储2*3,6个int类型的数组。
他可以用于存储多个学生,多科目考试成绩;也可以用于数学矩阵公式计算。
例如:
# include <iostream>
using namespace std;
int main(){
int a=3,b=6;
int test [a] [b];
test[0][0]=1;
test[0][1]=2;
test[0][2]=3;
test[0][3]=4;
test[0][4]=5;
test[0][5]=6;
test[1][0]=7;
test[1][1]=8;
test[1][2]=9;
test[1][3]=10;
test[1][4]=11;
test[1][5]=12;
test[2][0]=13;
test[2][1]=14;
test[2][2]=15;
test[2][3]=16;
test[2][4]=17;
test[2][5]=18;
test[3][0]=19;
for(int i = 0; i < b; i++){
cout<<"第"<<i+1<<"行数据为"<<test[0][i]<<endl;
cout<<"第"<<i+1<<"列数据为"<<test[1][i]<<endl;
}
return 0;
}
运行结果为:
此另外还可以初始化多维数组,例如:
# include <iostream>
using namespace std;
int main(){
int a=2,b=5;//定义数组大小
int test[2][5]={
{1,2,3,4,5},{5,4,3,2,1}
};//二维数组初始化并赋值
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 5; j++)
{
cout<<test[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
运行结果为:
这样可以使代码更简化,便于书写和认知。