删除数组中相同数字的重复

时间:2015-10-15 18:28:45

标签: c arrays

任务是显示基于某些用户生成的输入而没有重复的数组。

我正在尝试将数字与之前的每个数字进行比较,如果相等发生,a = 1,它应该跳过它。代码不返回任何内容。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int X[30],Y[30],i,j,k=0,a,N;
    printf("Length of the vector: ");
    scanf("%d",&N);
    printf("Input the numbers: ");
    for(i=0;i<N;i++)
        scanf("%d",X+i);
    Y[0]=X[0];
    for(i=1;i<N;i++){
        for(j=i-1;j>=0;j--)
            if(X[i]=X[j])
                a=1;
        if(a==0){
            k++;
            Y[k]=X[i];
        }
        a=0;
    }
    for(i=0;i<k;i++)
        printf("%d",Y[i]);
}

1 个答案:

答案 0 :(得分:1)

代码块中有三个单独的问题:

    第一次通过循环时,
  1. a未初始化。在您的循环上方添加一行a = 0;

  2. 您的if块读取if(X[i]=X[j]);它应该是if(X[i] == X[j])(您错过了一个=

  3. k的最终值将比您拥有的元素总数少一个。将最终的for循环更改为i = 0; i <= k; i++