删除数组中某元素,且右边的元素都向左平移一格

来源:百度知道 编辑:UC知道 时间:2024/04/20 04:47:58
要求若数组中有多个等于要删除的元素时,怎么办?
pascal语言

progran sc;
var a:array[1..100] of integer;
i,j,k,m,n,s:integer;
begin
readln(s);
for i:=1 to s do
readln(a[i]);
write('请输入要删除的元素的个数:');
readln(n);
for i:=1 to n do
begin
write('请输入要删除的元素:');
readln(k);
for j:=1 to s do
if a[j]=k then break;
for m:=j to s-1 do
a[j]:=a[j+1];
s:=s-1;
end;
end.

#define MAX 20
#include<stdio.h>
void main()
{
int a[MAX],x,y,i,j;
y=MAX;
printf("请输入要删除的元素:\n");
scanf("%d",&x);
for(i=0;i<y;i++)
if(a[i]==x)
for(j=i+1;j<y;j++)
{
a[j-1]=a[j];
y--;
}
}
这样就可以在有多个相同元素时都往左移了