1137: 【作】【入门】数组元素的删除
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:20
解决:18
题目描述
把一个数组的第x个位置的元素删除掉
输入
有三行
第一行有一个整数n( n <= 10 )
第二行有n个整数
第三行有一个整数x,为要删除的位置
第一行有一个整数n( n <= 10 )
第二行有n个整数
第三行有一个整数x,为要删除的位置
输出
输出更新后的数组
样例输入 复制
5
1 2 3 4 5
3
样例输出 复制
1 2 4 5
提示
n=int(input()) ls=list(map(int,input().split())) i=int(input()) ls.pop(i-1) print(' '.join(map(str,ls)))
#include <iostream> using namespace std; int main(){ int a[110],n,x; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; } cin>>x; for(int i=0;i<n;i++){ if(i+1!=x){ cout<<a[i]<<" "; } } }
#include <iostream> using namespace std; /* 思路二:真删除,将数组中下标为x的元素删除! 从删除下标x开始,将元素顺序向前移动! a[2]=a[3]; a[3]=a[4];…… a[5]=a[6]; 归纳得知:a[i]=a[i+1]; 每个数=其后面的元素 */ int main(){ int a[10],i,n,x; cin>>n;//数组实际元素个数//读入数组的n个元素 for(i = 0;i < n;i++){ cin>>a[i]; } //读入要删除的元素的位置 cin>>x; //将位置-1得到下标 x--; //从删除下标x开始到n-2结束,将每个元素后面的元素前移 for(i = x;i <= n-2;i++){ a[i] = a[i + 1]; } //删除结束,数组实际元素个数少了一个 n--; //输出删除的结果 for(i = 0;i<n;i++){ cout<<a[i]<<" "; } }