C语言问题 10

编写函数intdelnum(inta[],intnum,intn),用于在长度是n的数组a中,删除一个值为num的元素。删除后数组的长度作为函数的返回值返回。注意,num... 编写函数int delnum(int a[ ] , int num , int n),用于在长度是n的数组a中,删除一个值为num的元素。删除后数组的长度作为函数的返回值返回。注意,num在数组中可能不只一个。请以7_5.c命名本程序并上交。
主函数如下:
# define N 10
void main( )
{ int a[N] , num;
scanf(“%d”,&num);
输入N个数到数组a中;
调用delnum函数在数组a中删除指定的数num;
输出删除了num后的数组a;
}
定义并编写delnum函数
展开
 我来答
My_Persistence
2015-01-05 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:431万
展开全部
#include <stdio.h>
#define N 10
int delnum(int a[],int num,int n)
{
 int i,j=0;
 /*用j记录数组a中不等于num的元素个数(即需要保存的元素个数),
   边扫描数组a边统计j,并将不等于num的元素向前放置在j位置上,最后
   修改数组的长度
 */
 for(i=0;i<n;i++)
  if(a[i]!=num)
  {
   a[j]=a[i];
   j++;
  }
 return j;
}
void main()
{
 int a[N],num,n,i;
 printf("输入要被删除的数:");
 scanf("%d",&num);
 printf("输入数组元素:\n");
 for(i=0;i<N;i++)
  scanf("%d",&a[i]);
 n=delnum(a,num,N);
 printf("输出删除了num后的数组元素:\n");
 for(i=0;i<n;i++)
  printf("%-4d",a[i]);
 printf("\n");
}

示例运行如下:

百度网友2ebe1e4f3
2015-01-04 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3289万
展开全部
如果有几个相同的值都删除吗?
追问
是的
追答
# define N 10
int delnum(int a[],int num,int n)
{
int i,j;
for(i=0;i<n;i++)
if(a[i]==num)
{
for(j=i;j<n;j++)
a[j]=a[j+1];
n--;
i--;
}
return n;
}
void main( )
{
int a[N],i,num,Len;
printf("input array:\n");
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("what do you delete?\n");
scanf("%d",&num);
Len=delnum(a,num,N);
for(i=0;i<Len;i++)
printf("%d ",a[i]);
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式