以下程序的功能是删除值为x的数组元素。填空完成程序。
#include <stdio.h>
void main()
{
int a[10]={1,3,5,2,2,6,8,10,0,2};
int x,*p,i,count=0;
x=2;
for(p=a;p<a+10-count;p++)
if(*p==x)
{
count++;
for(i=p-a;i<10-count;i++)
_ ;
p--;
}
for(p=a; _ ; p++)
printf("%5d",*p);
printf("\n");
}第一个空应该是删除,第二个是遍历?
没有找到类似的问题解答,
我不理解p<a+10-count,是从后往前开始遍历?那为什么要这样?
删除数组中的某一元素
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
树下等苹果 2022-05-09 11:29关注第一个空是将后面的元素前移,覆盖要删除的那个元素;
第二个是要遍历的范围;
p<a+10-count是遍历的范围,count是需要删除元素个数#include <stdio.h> void main() { int a[10] = { 1,3,5,2,2,6,8,10,0,2 }; int x, * p, i, count = 0; x = 2; for (p = a; p < a + 10 - count; p++) if (*p == x) { count++; for (i = p - a; i < 10 - count; i++) *p=*p+1; p--; } for (p = a; p<a+10-count+1; p++) printf("%5d", *p); printf("\n"); }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用