C++插入删除

数组元素的删除

题目描述: 把一个数组的第x个位置的元素删除掉 输入 有三行 第一行有一个整数n( n <= 10 ) 第二行有n个整数 第三行有一个整数x,为要删除的位置 输出 输出更新后的数组

输入复制

5

1 2 3 4 5

3

输出复制

1 2 4 5

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	int q;
	cin>>q;
	q--;
	for(int i=0;i<n;i++)
	{
		if(i!=q)
		{
			cout<<a[i]<<" ";
		}
	}
	
	
	return 0;
}

数组元素的插入

题目描述 :在一个数组的第x个位置插入一个新的数y 输入 有四行 第一行有一个整数n ( 5 <= n <= 10 ) 第二行有n个整数 第三行有一个整数x,为要插入的位 置 第四行有一个整数y,为要插入的整数 输出 更新后的数组

输入复制

5

7 2 3 4 5

2

9

输出复制

7 9 2 3 4 5

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	int q,v;
	cin>>q>>v;
	q--;
	for(int i=n-1;i>=q;i--)
	{
		a[i+1]=a[i];
	}
	a[q]=v;
	n++;
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	
	return 0;
}

元素插入有序数组

题目描述 :给你一个整数n和一个数列(数列个数不超过1000),这个数列保证从小到大排列,现要 求将这个整数n插入到数列中,使新的数列仍然从小到大排列。 输入 第一行一个整数n :等待插入的数 第二行一个整数m :数列中数的个数 第三行m个整数(空格隔开) 输出 一行整数:新的数列(空格隔开)

输入复制

2

4

1 3 4 5

输出复制

1 2 3 4 5

#include<iostream>
using namespace std;
int main()
{
	int v,q;
	q=0;
	cin>>v;
	int a[100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<n;i++)
	{
		if(a[i]>v)
		{
			q=i;
			break;
		}
	}
	for(int i=n-1;i>q-1;i--)
	{
		a[i+1]=a[i];
	}
	a[q]=v;
	n++;
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	
	return 0;
}

删除数组的最小数

题目描述: 在一个不重复的数组中,请将这个数组的最小数删除后输出! 输入 有两行 第一行有一个整数n ( 5 <= n <= 100 ) 第二行有n个不重复的整数! 输出 删除最小数后的数组!

输入复制

5

1 7 6 8 2

输出复制

7 6 8 2

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	int min=9999;
	int minindex=9999;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		if(a[i]<min)
		{
			min=a[i];
			minindex=i;
		}
	}
	for(int i=0;i<n;i++)
	{
		if(i!=minindex)
		{
			cout<<a[i]<<" ";
		}
	}
	
	
	
	return 0;
}

在最大数后面插入一个数

题目描述 :在一个不重复数组的最大数的后面插入一个新的数y 输入 有三行 第一行有一个整数n ( 5 <= n <= 100 ) 第二行有n个整数 第三行有一个整数y,为要插入的数 输出 更新后的数组

输入复制

5

7 2 3 4 5

9

输出复制

7 9 2 3 4 5

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	int max=-1;
	int maxindex=-1;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		if(a[i]>max)
		{
			max=a[i];
			maxindex=i;
		}
	}
	int y;
	cin>>y;
	for(int i=n-1;i>=maxindex+1;i--)
	{
		a[i+1]=a[i];
	}
	a[maxindex+1]=y;
	n++;
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	
	
	return 0;
}

小明排队做操迟到

题目描述 :做操的时间到了,小明在教室还在思考刚刚老师讲的一道题目,当他想通这个题时,同 学们都已经在操场上排好队了,他赶快跑到操场上找到自己的班级队伍,希望尽快找到 以前排队的位置,准备做操,小明记得应该排在第x学号同学的后面。你能不能来帮帮小 明呢? 输入(两行): 第一行3个整数:n x y(现在队伍的长度、第x同学 的学号、小明的学号) 第二行n个整数:n个同学的学号 。输出    n+1个学号(小明加入队伍后队伍中的每个数据)

输入复制

4 32 23

1 8 32 56

输出复制

1 8 32 23 56

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n,x,y;
	cin>>n>>x>>y;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	int s=0;
	for(int i=0;i<n;i++)
	{
		if(a[i]==x)
		{
			s=i+1;
		}
	}
	for(int i=n-1;i>=s;i--)
	{
		a[i+1]=a[i];
	}
	a[s]=y;
	n++;
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	
	return 0;
}

删除第 X个数

题目描述 :删除数组中的第 X个数 输入 三行第1行输入整数 n,代表有 n个数 第 2行输入 n个数,空格隔开 第 3行输入 1个整数,代表第 X个数 输出 删除后的数组,空格隔开

输入复制

5

1 7 6 8 2

3

输出复制

1 7 8 2

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	int q;
	cin>>q;
	q--;
	for(int i=0;i<n;i++)
	{
		if(i!=q)
		{
			cout<<a[i];
		}
	}
	
	
	return 0;
}

最小数前插入

题目描述: 在数组中的最小数前面插入X 输入 三行 第1行输入整数n,代表有n个数 第2行输入n个数,空格隔开 第3行输入1个整数,代表要插入的数 输出 插入后的数组,空格隔开

输入复制

6

3 7 6 8 2 9

10

输出复制

3 7 6 8 10 2 9

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	int min=9999;
	int minindex=9999;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		if(a[i]<min)
		{
			min=a[i];
			minindex=i;
		}
	}
	int y;
	cin>>y;
	for(int i=n-1;i>=minindex;i--)
	{
		a[i+1]=a[i];
	}
	a[minindex]=y;
	n++;
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	
	
	return 0;
}

指定数字前插入

题目描述: 在数组中,指定的数字前插入X 输入 三行 第1行输入整数n,代表有n个数 第2行输入n个数,空格隔开 第3行输入2个整数,代表要插入的数的位置 和值,空格隔开 输出 插入后的数组,空格隔开

输入复制

6

3 7 6 8 2 9

2

100

输出复制

3 100 7 6 8 2 9

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	int q,v;
	cin>>q>>v;
	for(int i=n-1;i>=q;i++)
	{
		a[i+1]=a[i];
	}
	a[q]=v;
	n++;
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	
	
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值