问题描述:
【项目2 - 删除呈升序排列数组元素】
del函数的作用是删除数组a中的指定元素x,n为数组a的元素个数。函数的返回值,为删除元素后的有效元素个数(数组中可能有重复元素)。函数的原型为:int del (int a[10],int n,int x),在函数调用时,要求数组中的元素呈升序排列
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define N 20
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun170.c
*问题描述:删除数组元素
*作者:小臣小仁
*完成日期:2017年10月10日
*/
int del(int [],int,int);
int main()
{
int a[N]= {1,7,8,17,23,23,24,59,62,101};
int i, n=10;
int x =23;
n=del(a,n,x); //在长度为n的a数组中插入m,使仍保持有序
for(i=0;i<n;++i)
printf("%d ", a[i]);
printf("\n");
return 0;
}
int del(int a[],int n,int x)
{
int p,q=0;
while(a[q]<x&&q<n)
q++;
p=q;
while(a[p]==x&&p<n)
p++;
while(p<n)
a[q++]=a[p++];
return q;
}
输出结果:
心得体会:
作为一个初学的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵