6.数组的倒序与隔位输出

87 阅读5分钟

题目描述

给定一个整数数组,编写一个程序实现以下功能:

  1. 将输入的整数数组倒序输出,每个数之间用空格分隔。
  2. 从正序数组中,每隔一个单位(即索引为奇数的元素),输出其值,同样用空格分隔。

输入描述

第一行包含一个整数 n,表示数组的长度。
接下来一行包含 n 个整数,表示数组的元素。

输出描述

首先输出倒序排列的数组元素,然后输出正序数组中每隔一个单位的元素。

输入示例

5
2 3 4 5 6

输出示例

6 5 4 3 2
2 4 6

提示信息

数据范围:

1 <= n <= 1000.

我们可以掌握以下知识点:

  • 数组的概念和特点
  • 数组的声明和定义、索引、数组元素的访问、以及数组的循环遍历
  • vector的概念和特点,以及和数组的区别
  • vector的声明、访问、以及操作方法

1.数组的概念和特点

1.1数组的概念

c++数组是一种用于存储相同数据类型的元素的数据结构

image.png

1.2数组的特点

1.固定大小:

数组声明之后,大小一般是固定的,不能在运行时动态更改;

2.相同数据类型:

数组中的所有元素必须具有相同的数据类型;

3.连续存储(重点):

数组的元素在内存中是连续存储的;

4.下标访问(重点):

数组中的元素通过下标进行访问;

2.数组的声明和定义、索引、数组元素的访问、以及数组的循环遍历

2.1数组的使用

C++中声明数组的方式为dataType arrayName[arraySize]

dataType表示数组元素的类型,比如int,double char等。 arrayName表示数组指定的名称,类似于变量名称。 arraySize表示数组的大小,可以容纳多少个元素。

2.2数组的声明

//声明一个包含5个整数的数组
int arr[5];

2.3数组的索引

1.使用大括号初始化一个长度为5的整型数组

//使用大括号初始化一个长度为5的整型数组
int arr[5] = {1,2,3,4,5};

2.定义一个长度为3的整型数组,并逐个赋值

//定义一个长度为3的整型数组,并逐个赋值
int arr1[3];
arr1[0] = 10;
arr1[1] = 20;
arr1[2] = 30;

2.4数组元素的访问

1.可以使用下标操作符 []访问。

注意,下标从0开始,直到数组的前一位。

int arr[5] = {1,2,3,4,5};
int value = arr[2];

2.还可以使用下标操作符[]修改数组中元素的值。

int arr[5] = {1,2,3,4,5};
arr[0] = 10;

2.5数组的循环遍历

int arr[5] = {1,2,3,4,5};
for(int i = 0;i <5;i++){
    cout << arr[i] << " ";
}

2.6数组的注意事项

c++数组没有提供自动的长度信息,因此在处理的时候要小心,避免访问越界的元素。

//数组长度为5,索引为0-4,如果访问arr[5],会越界访问数组范围,导致程序运行出错
int a = arr[5];

数组实现代码

#include <bits/stdc++.h>

using namespace std;

int main(){
    int n;
    cin>>n;
    int arr[n];
    for(int i = 0;i < n;i++){
        cin >> arr[i];
    }
    for(int j = n-1;j >= 0;j--){
        cout << arr[j] <<" ";
    }
    cout << '\n';
    for(int k = 0;k < n;k+=2){
        cout << arr[k] <<" ";
    }
    return 0;
}

3.vector的概念和特点,以及和数组的区别

如果不清楚元素的确切个数,使用vector

3.1vector的概念

vector被称为容器,作为c++标准库中的一个容器类,表示对象的集合,可以动态地存储一组元素,所以可以根据需要轻松的调整vector的大小。

4.vector的声明、访问、以及操作方法

4.1vector的声明

想要使用vector,必须包含头文件vector

#include <vector>
using std::vector;

4.2vector的创建

1.创建方式为vector<类型> 名称,无需指明长度

//创建一个空vector,数据类型为int;
vector<int> myVecror;

2.还有一些其他的创建方式

//创建一个包含整型元素的容器并初始化元素
vector<int> myVecror = {1,2,3,4,5};

//创建一个包含10个元素的容器,元素为int类型(值默认初始化为0)
vector<int> myVecror(10);

//创建一个包含10个元素的容器,每个元素的值都是-1
vector<int> myVecror(10,-1);

4.3vector调整大小

push_back()负责将一个值push(推送)到vector的back(尾端)

//往容器的最后添加一个数字6
vector<int> myVector = {1,2,3,4,5};
myVector.push_back(6);

4.4vector的访问

可以使用下标操作符[]访问vector的元素

int valut = myVector[0];

4.5vector的元素大小

可以使用下标操作符size()访问vector容器当前的元素数量

int size = myVector.size();

4.6vector的遍历

可以使用for循环vector容器

for(int i = 0;i < myVector.size(); i++){
    cout << myVector[i] << " ";
}

4.7vector的其他方法

//删除vector末尾的元素
myVector.pop_back();

//清空vector中的所有元素
myVector.clear();

//判断vector是否为空,如果为空,返回true。否则,返回false。
myVector.empty();

vector实现代码

#include <bits/stdc++.h>

using namespace std;

int main(){
    vector<int> nums;
    int n;
    cin>>n;
    for(int i = 0; i < n; i++){
        int a;
        cin>>a;
        nums.push_back(a);
    }
    for(int j = nums.size()-1;j >= 0; j--){
        cout << nums[j] << " ";
    }
    cout << "\n";
    for(int k = 0; k < n; k+=2){
        cout << nums[k] << " ";
    }
    return 0;
}