主函数如下:并把删除后数组的长度作为函数的返回值?

编写一个函数int delnum(int *a , int num , int n),用于在长度是n的数组a中,删除一个指定的元素num。
# define N 10
main( )
{
int a[N] , num;
scanf(“%d”,&num);
输入N个数到数组a中;
调用delnum函数在数组a中删除指定的数num;
输出删除了num后的数组a;
}

九州编程
浏览 79回答 2
2回答

HUWWW

#include<stdio.h>#define N 10void delnum(int *a,int num,int n){int i=0;while(a[i]!=num&&i<n-1)i++;while(i<n-1){a[i++]=a[i+1];}}int main(int argc, char *argv[]){int i,a[N]={0};for(i=0;i<N;i++)scanf("%d",&a[i]);printf("\n删除前数组:\n");for(i=0;i<N;i++)printf("%4d ",a[i]);printf("\n输入要删除的数据:");scanf("%d",&i);delnum(&a,i,N);printf("\n删除后数组:\n");for(i=0;i<N;i++)printf("%4d ",a[i]);system("PAUSE");return 0;}

SMILET

首先跟你说下 删除的实质 :就是将他的内存空间替换。也就是说,你要删除 a【1】 就相当于 把 a【1】的存储空间分配给 a【2】 。如此类推。(删除1,就将后面的全部向前移动。)接下来的事情就比较简单了。利用for来完成
打开App,查看更多内容
随时随地看视频慕课网APP