c语言编程:删除数组a中所有值为x的元素,输出执行删除前后的数组。

要求数组a中共有10个元素,且通过初始化获得初值,删除数据x的值由键盘输入... 要求数组a中共有10个元素,且通过初始化获得初值,删除数据x的值由键盘输入 展开
 我来答
985967518
2015-12-20 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109858
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

依次遍历数组,找到该元素后,数组后面所有元素前移,并且元素个数减一,最后重新输出该数组即可。

参考代码:

#include <stdio.h>
int main() {
int n=10,i,j,x,a[10]={0,1,2,3,4,5,5,6,7,8};
scanf("%d",&x);
for(i=0;i<10;i++){
if(a[i]==x){
for(j=i;j+1<10;j++)
a[j]=a[j+1];
n--;
i--;
}
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
/*
运行结果:例如删除数字a{0,1,2,3,4,5,5,6,7,8}中的5 
5
0 1 2 3 4 6 7 8
*/
luofan9
2009-11-09 · TA获得超过111个赞
知道答主
回答量:202
采纳率:0%
帮助的人:178万
展开全部
//数组中被删除的数用-1代替。。
#include"stdio.h"
void main()
{
int i,a[10]={11,3,2,65,3,6,8,2,3,5},del;
printf("删除前的数组:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n输入要删除的数: ");
scanf("%d",&del);
for(i=0;i<10;i++)
if(a[i]==del)a[i]=-1;
printf("删除后的数组:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱脱臼之后
2009-11-09 · TA获得超过596个赞
知道小有建树答主
回答量:544
采纳率:0%
帮助的人:0
展开全部
#include"stdio.h"
main()
{
int i,a[10]={11,3,18,65,3,6,8,2,3,5},del;
scanf("%d",&del);
for(i=0;i<10;i++)
{
if(a[i]!=del)
printf("%d\n",a[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式