C 查找数组中的重复数的步骤

C 查找数组中的重复数的步骤,c,C,问题是将数字作为数组的输入,并显示其中重复的数字 我在练习提高编码技能时遇到了这个问题 #include<stdio.h> int main() { int i=0,j=1,m,n,arry[100],count=0; printf("Enter the number of elements in an array\n"); scanf("%d",&n); printf("Enter the array elements\n");

问题是将数字作为数组的输入,并显示其中重复的数字

我在练习提高编码技能时遇到了这个问题

#include<stdio.h>

int main()
{
    int i=0,j=1,m,n,arry[100],count=0;
    printf("Enter the number of elements in an array\n");
    scanf("%d",&n);

    printf("Enter the array elements\n");

    for(m=0;m<n;n++)
    {
        scanf("%d",&arry[m]);
    }

    while(i!=n-1)
    {
        for(;j<n;j++)
        {
            if(arry[i]==arry[j])
                count++;
        }

        i++;
    }       
    printf("The number of duplicates in the array are %d",count);
}
这似乎是一个简单的问题,我认为算法是正确的,但我没有得到所需的输出。我执行了DEV C++上的代码,在输入数组元素后,代码崩溃了。我也尝试了一些在线编译器。它们有时在输入元素时显示“分段错误”。我认为这与数组索引有关


PS:我是第一次使用这个平台,我对这里讨论的问题的难度一无所知。如果你觉得这太简单和愚蠢,不要笑,帮我解决

你在程序中犯了很多愚蠢的错误,比如form=0;m思考while的第一次迭代后j的值以及下一次迭代中会发生什么。你把第一部分漏掉了。。。。重新考虑这是否真的是你想要的。这里有一些有用的提示:1-你用1初始化j,但它应该是0,否则你将跳过第一个元素而不处理它。2-在比较两个元素之前,请确保避免在i==j时比较同一索引的两个值,以便将if更改为if i!=j&&arr[i]==arr[j]3-您需要确保当达到第二个值时,不会重复计算两次值,即:i=3和j=7。与i=7和j=3相比,首先对数组进行排序要容易得多。是的,对数组进行排序,然后循环检查相邻元素是否相等。
#include<stdio.h>
int main()
{
    int i=0,n,count=0;
    printf("Enter the number of elements in an array\n");
    scanf("%d",&n);
    int arry[n];
    printf("Enter the array elements\n");

    for(int m=0;m<n;m++)
    {
        scanf("%d",&arry[m]);
    }

    while(i!=n-1)
    {
        for(int j=0;j<n;j++)
        {
            if(arry[i]==arry[j])
            count++;
        }
        i++;
    }       
    printf("The number of duplicates in the array are %d",count);
    return 0;
}
#include<stdio.h>
int main() {
        int n;
        printf("Enter The Size Of Array: ");
        scanf("%d",&n);
        int a[n],b[n];
        int i;
        int p=0;
        printf("Enter The Elements Of The Array:\n");
        for(i=0;i<n;i++)
        {
                scanf("%d",&a[i]);
        }
        for(i=0;i<n;i++)
        {
                int j;
                for(j=0;j<i;j++)
                {
                        if(a[i]==a[j])
                        {
                                break;
                        }
                }
                if(j==i)
                {
                        b[p]=a[i];
                        p++;
                }
        }
        printf("\nUnique Numbers Are:  ");
        for(i=0;i<p;i++)
        {
                printf("%d  ",b[i]);
        }
        printf("\n");
        return 0;
}
#include<stdio.h> 
int main() {
        int n;
        printf("Enter The Size Of Array: ");
        scanf("%d",&n);
        int a[n],b[n],c[n];
        int p=0;
        printf("Enter The Elements Of The Array:\n");
        for(int i=0;i<n;i++)
        {
                scanf("%d",&a[i]);
        }
        for(int i=0;i<n;i++)
        {
                int j;
                for(j=0;j<i;j++)
                {
                        if(a[i]==a[j])
                        {
                                break;
                        }
                }
                if(j==i)
                {
                        b[p]=a[i];
                        p++;
                }
        }
        for(int i=0;i<p;i++)
        {
                int count=0;
                for(int j=0;j<n;j++)
                {
                        if(a[j]==b[i])
                        {
                                count++;
                        }
                }
                c[i]=count;
        }


        for(int i=0;i<p;i++)
        {
                printf("The Unique Number %d Was Repeated %d Times In The Array.\n",b[i],c[i]);
        }
        printf("\n");
        return 0; }