1137: 【作】【入门】数组元素的删除

内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:20 解决:18

题目描述

把一个数组的第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]<<" ";
	}
}