您的位置:首页 > 其它

提高篇第二十六讲项目2 - 删除数组元素

2017-10-09 16:17 190 查看
问题描述

【项目2 - 删除数组元素】

del函数的作用是删除数组a中的指定元素x,n为数组a的元素个数。函数的返回值,为删除元素后的有效元素个数(数组中可能有重复元素)。函数的原型为:

int del (int a[10],int n,int x)

(1)请实现这个函数,并完成测试。

程序代码

#include <stdio.h>
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun168.c
*问题描述:删除数组元素
*作者:小臣小仁
*完成日期:2017年10月9日
*/
int del(int [],int,int);
int main()
{
int i,n=10;
int a[10]={12,5,41,31,56,41,16,18,25,31};
n=del(a,10,41);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
int del(int a[],int n,int x)
{
int q=0,p=0;
while(q<n)
{
if(a[q]!=x)
{
a[p]=a[q];
p++;
}
q++;
}
return p;
}

之前打了个错误代码,只能覆盖一个数,其他相同它覆盖不了,希望跟我一样的小白不要入坑,代码如下
#include <stdio.h>
#include <stdlib.h>
#define N 50
/*
*csdn学院--2016级
*目的:让代码见证成长(作为一个初学的菜鸟,如
*大家有发现错误,欢迎指正!)
*文件名称:Myfun168.c
*问题描述:删除数组元素
*作者:小臣小仁
*完成日期:2017年10月7日
*/
int del(int[],int,int);
int main()
{
int i,n;
int a
={1,45,2,7,3,3,14,77,23,46};
n=del(a,10,3);
for(i=0;i<n;i++)
printf(" %d",a[i]);
return 0;
}
int del(int a[],int n,int x)
{
int i,j;
for(i=0;i<n;i++)
if(a[i]==x)
break;
for(j=i;j<n;j++)
a[j]=a[j+1];
return --n;
}


输出结果



心得体会:
              作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: