【C++笔记】一维数组元素处理

目录

1. 一维数组插入元素

具体方法

练习:【入门】数组元素的插入

 题目

 代码

2. 一维数组删除元素

具体方法

练习:【入门】数组元素的删除

 题目

 代码

3. 一维数组交换元素

具体方法

 题目

 代码


1. 一维数组插入元素

具体方法

概念:
插入元素是指在数组的某个位置添加一个新元素,并将原来的元素向后移动。
例如,将5插入到数组[1, 2, 4, 6]的第二个位置,结果变为[1, 5, 2, 4, 6]。
关键点:
确定插入位置:首先要明确新元素插入的位置(索引)。
元素后移:
从插入位置开始,将后面的元素依次向后移动一个位置,以空出插入位置。
插入新元素:
在空出的插入位置填入新元素。

练习:【入门】数组元素的插入

 题目

描述:

在一个数组的第x个位置插入一个新的数y

输入描述:

有四行 第一行有一个整数n ( 5 <= n <= 10 ) 第二行有n个整数 第三行有一个整数x,为要插入的位置 第四行有一个整数y,为要插入的整数

输出描述:

更新后的数组

用例输入:                                         用例输出:

5                                7 9 2 3 4 5
7 2 3 4 5
2
9

 代码

#include<bits/stdc++.h>
using namespace std;
int arr[1000000];
int main(){
	int n;
    cin>>n;
	for(int i=1;i<=n;i++){
		cin>>arr[i];
	}
	int x,y;
	cin>>x>>y;
	for(int i=n;i>=x;i--){
		arr[i+1]=arr[i];
	}
	arr[x]=y;
	for(int i=1;i<=n+1;i++){
		cout<<arr[i]<<' ';
	}
	return 0; 
} 


2. 一维数组删除元素

具体方法

概念:
删除元素是指从数组中移除某个位置的元素,并将后面的元素依次向前移动,以填补空位。
例如,删除数组[1, 5, 2, 4, 6]中的元素5,结果变为[1, 2, 4, 6]。
关键点:
确定删除位置:
明确需要删除的元素位置(索引)。
元素前移:
从删除位置的下一个元素开始,将后面的元素依次向前移动一个位置,覆盖掉删除的元素。
调整数组长度:
删除元素后,数组的长度减少,应该调整处理后的数组长度。

练习:【入门】数组元素的删除

 题目

描述:

把一个数组的第x个位置的元素删除掉

输入描述:

有三行
第一行有一个整数n( n <= 10 )
第二行有n个整数
第三行有一个整数x,为要删除的位置

输出描述:

输出更新后的数组

用例输入:                                                 用例输出:

5                                     1 2 4 5
1 2 3 4 5 
3

 代码

#include<bits/stdc++.h>
using namespace std;
int arr[1000000];
int main(){
	int n;
    cin>>n;
	for(int i=1;i<=n;i++){
		cin>>arr[i];
	}
	int x;
	cin>>x;
	for(int i=x;i<=n-1;i++){
		arr[i]=arr[i+1];
	}
	for(int i=1;i<=n-1;i++){
		cout<<arr[i]<<' ';
	}
	return 0; 
} 

3. 一维数组交换元素

具体方法

概念:
交换元素是指将数组中的两个元素互换位置。
例如,交换数组[1, 2, 3, 4]中的元素2和4,结果变为[1, 4, 3, 2]。
关键点:
确定交换位置:
明确需要交换的两个元素的位置(索引)。
临时变量交换:
使用临时变量保存一个元素的值,然后将另一个元素的值赋给前者,再将临时变量的值赋给后者。

 题目

描述:

在一个不重复的数组中,请将这个数组的最小数和数组第一个数交换,最大数和数组最后一个数交换。

输入描述:

有两行 第一行有一个整数n ( 5 <= n <= 100 ) 第二行有n个不重复的整数!

输出描述:

移动位置后的数组。

用例输入:                                              用例输出:

5                                   1 7 6 4 10
6 7 1 10 4

 代码

#include<bits/stdc++.h>
using namespace std;
int arr[1000000];
int main(){
	int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i];
    }
    int id_min=1;
    int id_max=1;
    for(int i=1;i<=n;i++){
        if(arr[i]>arr[id_max])
            id_max=i;
        if(arr[i]<arr[id_min])
            id_min=i;
    }
    int a=arr[id_min];
    arr[id_min]=arr[1];
    arr[1]=a;
    int b=arr[id_max];
    arr[id_max]=arr[n];
    arr[n]=b;
    for(int i=1;i<=n;i++){
        cout<<arr[i]<<' ';
    }
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值