c语言问题

c语言问题输入任意n元素数组,删除里面任意一种元素
例如输入11个元素的数组 1 1 5 6 1 8 9 4 2 7 1
删除元素1
输出 数组5 6 8 9 4 2 7

第1个回答  2018-12-15
首先malloc一个长度n的数组,然后再malloc一个长度n数组,用来表示某一位是否有效。
先向第一个数组填充数据,然后第二个数组设0表示被删除了,1表示有效,初始都为1。
然后要删除哪个遍历,就把第二个数组对应位置的设为0追问

代码怎么打呢?

第2个回答  2018-12-15
不给你源代码了吧,跟你说全部的思路。
先定义一个int型的数组a[11],辅助数组b[11](用来存删除元素后的数组)
然后用一个for循环从0到10,然后判断a[i]是不是等于1,如果是,辅助数组b[k++],然后从0到k-1输出b[k]。追问

不是10个数的数组,是随意定义的数组

追答

你就定义长一点,然后用strlen求一下串长,然后后面思路一样

本回答被提问者采纳
第3个回答  2018-12-15
一次性全部删除某一个元素值,参考代码如下:
#include<stdio.h>
int a[20]={1,1,5,6,1,8,9,4,2,7,1};
int n=11;
int main()
{
int i,j=0,t;
for(i=0;i<n;++i)
printf("%d ",a[i]);
printf("\n");
scanf("%d",&t);
for(i=0;i<n;++i)
if(a[i]!=t)
a[j++]=a[i];
for(i=0;i<j;++i)
printf("%d ",a[i]);
return 0;
}追答

本回答被网友采纳
第4个回答  2018-12-15
循环遍历数组过滤掉值为1的
第5个回答  2018-12-15
循环规划的
相似回答