提高篇第二十六讲项目2

来源:互联网 发布:windows sail.js 编辑:程序博客网 时间:2024/05/21 21:38

问题描述

【项目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[N]={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;}


输出结果


心得体会
              作为一个大学二的菜鸟,开始慢慢前进,多多少少感到有收获,由于水平有限,多多少少有错,望包涵

原创粉丝点击