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函数 展开
主函数如下:
# define N 10
void main( )
{ int a[N] , num;
scanf(“%d”,&num);
输入N个数到数组a中;
调用delnum函数在数组a中删除指定的数num;
输出删除了num后的数组a;
}
定义并编写delnum函数 展开
2个回答
展开全部
#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");
}
示例运行如下:
展开全部
如果有几个相同的值都删除吗?
追问
是的
追答
# 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();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询