本题实现在顺序表中删除一个元素。
函数接口定义:
int del(int a[],int *n,int x);
其中
a
是顺序表,*n
是数组中元素的个数。x
是待删除的元素。返回值为1时表示删除成功,0表示表中无x元素裁判测试程序样例:
#include <stdio.h> #define N 10 int del(int a[],int *n,int x); int main() { int a[N],n,i,x,flag; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); scanf("%d",&x); flag=del(a,&n,x); if(flag) { for(i=0;i<n;i++) printf("%d ",a[i]); } else printf("no %d",x); return 0; } /* 请在这里填写答案 */
输入样例:
5 3 1 8 5 6 8
输出样例:
3 1 5 6
int del(int a[],int *n,int x) {
for(int i=0;i<*n;i++) {
if(x==a[i]) {
for(int j=i;j<*n;j++) a[j] = a[j+1];
(*n)--;
return 1;
}
}
return 0;
}