c - 删除数组中相同数字的重复项

标签 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. a第一次通过循环时未初始化。添加一行a = 0;在你的循环之上。

  2. 您的 if block 读取 if(X[i]=X[j]) ;应该是if(X[i] == X[j]) (您缺少一个=)

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

关于c - 删除数组中相同数字的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155897/

相关文章:

c - 如何在嵌入式上比较字符串日期 GMT

c - TCP 客户端-服务器、ping 和数据包大小

arrays - 在 Ruby 中,如何以不区分大小写的方式查找数组中元素的索引?

c++ - 动态分配 float 组并将其设置为零

c++ - 我应该使用 map 、3D 数组还是坚持使用堆栈?

c - 微软 C 编译器 : Inline variable declaration?

c - 打印 (Char*)(Void*) 在主程序中有效,但在函数中无效

c - C 语言编程中的 extern

python - 想要比 numpy.take 更快的索引吗?

python - 在 Python 3.4 中按日期对字典列表进行排序