n个数,删除m次。
第二行是n个数,第三行是删除的m次数组元素的位置。
在样例中,3 2 表示数组有3个数,需要删除2次,第二行的 1 2 3是数组的元素。
第三行的 1 1 表示,先删除第1个元素,也就是1,数组中的元素只剩下2 3,然后再删除当前数组的第1个元素,也就是2,数组剩余元素是3.
你最好把样例输出贴出来,我写完代码测试一下
运行结果:
代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,m,i,j,pos;
int p[1000];
scanf("%d %d",&n,&m); //读取n和m
for(i=0;i<n;i++)
scanf("%d",&p[i]);
//开始删除
for(i=0;i<m;i++)
{
scanf("%d",&pos); //删除位置
for(j=pos-1;j<n-1;j++)
p[j] = p[j+1];
n -= 1; //删除后,数组元素个数减少1
}
//输出剩余元素
for(i=0;i<n;i++)
{
if(i<n-1)
printf("%d ",p[i]);
else
printf("%d",p[i]);
}
return 0;
}