Funnyci 发表于 2020-3-9 09:16:41

C语言求助,如何删除一个数组中的某个元素(可能是重复元素),该元素由键盘输入

输入一组整数,以-1作为结束的标志,用数组s接收这组数,(规定这组数不超过100个,数组中的元素值可以重复出现;例如,输入6954675686623 -1),输入一个整数x,将s中值等于输入值x的所有元素从数组中删除,并输出删除后元素的个数和数组元素的各个值(例如, 输入6,则结果为:个数=8; 数组元素为:9 , 5, 4 , 7 ,5 , 8 ,2 ,3 )。   
我自己弄过但是那两个重复的6不能全部删除,总会剩余一个6.   下边是我自己弄的一个简单的程序:
#include<stdio.h>
void main()
{
        int s={6,9,5,4,6,7,5,6,8,6,6,2,3};
        int x=6,i,j,m;
        for(i=0;i<13;i++)
        {
                if(x == s)
                {
                        m++;
                        for(j=i;j<12;j++)
                        {
                                s=s;
                        }
                }
        }
        printf("%d\n",13-m);
        for(i=0;i<13-m;i++)
        {
                printf("%d ",s);
        }
}

qiuyouzhi 发表于 2020-3-9 09:21:10

https://blog.csdn.net/csdn17355456893/article/details/76883951

Funnyci 发表于 2020-3-9 09:38:11

qiuyouzhi 发表于 2020-3-9 09:21
https://blog.csdn.net/csdn17355456893/article/details/76883951

但是这两种方法只能删除一个6,但是题目要求的是删去数组中全部的6

qiuyouzhi 发表于 2020-3-9 09:38:50

Funnyci 发表于 2020-3-9 09:38
但是这两种方法只能删除一个6,但是题目要求的是删去数组中全部的6

只要删除6,对吗?

Funnyci 发表于 2020-3-9 09:43:42

qiuyouzhi 发表于 2020-3-9 09:38
只要删除6,对吗?

删除的元素是键盘输入的,但是要删除数组中全部的那个元素,比如删除6,就要把数组里边的6全删了
页: [1]
查看完整版本: C语言求助,如何删除一个数组中的某个元素(可能是重复元素),该元素由键盘输入