1137: 【作】【入门】数组元素的删除
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:21
解决:19
题目描述
把一个数组的第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]<<" ";
}
}