关于删除数组中重复元素

关于删除数组中重复元素

img


我写了一个代码,自己测试完全没问题,但是一直有个点过不去

img

c
#include
int main() {
int a[100];
int n;
int x = 0; int j = 0; int flag = 1;
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &x);
flag = 1;
for (int q = 0; q < n; q++) {

        if (x == a[q]) {
            flag = 0;
            break;
        }
    }
    if (flag) {
        a[j] = x;
        j++; 
    }
}
for (int k = 0; k < j; k++) {
    printf(" %-d", a[k]);
}


return 0;

}

希望各位能帮本人看看(为啥csdn还有屏蔽字)

#include <stdio.h>
int main() {
    int a[100];
    int n;
    int x = 0; 
    int j = 0; 
    int flag = 1;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &x);
        flag = 1;
        for (int q = 0; q < j; q++) {//这里应该是q < j不是q < n 
                if (x == a[q]) {
                    flag = 0;
                    break;
                }
        }
        if (flag) {
            a[j] = x;
            j++; 
        }
    }
    for (int k = 0; k < j-1; k++) {
        printf("%d ", a[k]);
    }
    printf("%d",a[j-1]); 
    return 0;
}
#include <stdio.h>
void prin(int t[],int n)
{
    for(int j=0; j<n; j++)
        printf("%d ",t[j]);
    printf("\n");
}
int Remove_duplication2(int t[],int len)
{
    int count=0;
    int flag=0;
    while(flag==0)
    {
        flag=1;
        for(int i=0; i<len; i++)
        {
            for(int j=0; j<len; j++)
            {
                if(i!=j&&t[i]==t[j])
                {
                    int tem=i>j?i:j;
                    for(int k=tem;k<len-1;k++)
                    {
                        t[k]=t[k+1];
                    }
                    len--;
                    flag=0;
                }
            }
        }
        if(flag==1) break;
    }
    return len;
}
int main()
{
    int t[]= {1,1,5,1,2,2,3,4,5,5,5,5,5,5,6,7,8,8,1,2,9};
    int len=sizeof(t)/sizeof(int);
    //int t2[len];
    printf("原数组:\n");
    prin(t,len);
    int len2=Remove_duplication2(t,len);
    printf("去除重复元素后的数组:\n");
    prin(t,len2);
    return 0;
}

https://blog.csdn.net/weixin_44882124/article/details/123328278

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^