c - 删除重复值并在其位置添加 0

标签 c arrays loops

我编写了一段代码来删除重复值并在该位置添加 0。 但我觉得我的代码应该比这好得多,如果有人能更好地了解开发这段代码的话。 请给我建议和建议。

  • 输入--2,3,4,3,6
  • 输出--2,3,4,0,6

这是我的代码:

#include<stdio.h>
int main()
{
   int a[100],b[100];
   int i,j,size;
   scanf("%d",&size);
   for(i=0;i<size;i++)
   {
      scanf("%d",&a[i]);
   }

   for(i=0;i<size;i++)
   {
      b[i]=a[i];

   }

   for(i=0;i<size;i++)
   {
      for(j=i+1;j<size;j++)
      {
         if(a[i]==a[j])
         {
            b[j]=0;
         }
      }
   }

   for(i=0;i<size;i++)
      printf("%d\n",b[i]);

   return 0;
}

最佳答案

清除重复项,如下所示,与目前输入的值进行比较:

#include<stdio.h>
int main() {
  int a[100];
  int i,j,size;
  scanf("%d",&size);
  for(i=0;i<size;i++)
    {
      scanf("%d",&a[i]);
      for(j=0;j<i;j++){
        if(a[j]==a[i]) {
          a[i]=0; /* found duplicate among previous entries! */
          break;
        }
      }
    }
  for(i=0;i<size;i++)
    printf("%d\n",a[i]);
  return 0;
}

关于c - 删除重复值并在其位置添加 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30562016/

相关文章:

c - 如何使用 C 将字符数组中的两个字符替换为另一个字符?

python - 如何从文件中打印单行

ios - 如何在 iOS 中进行健壮的线程本地存储

c++ - 如果 malloc(STL 分配器等)请求分配 0 字节会发生什么

c - redhat enterprise 3 上的 gcc4.5 使用 asm 警告消息

javascript - 对对象数组中相似的键求和

c# - 将值插入数组的有效方法?

C# 从字节数组中解析非统一位序列

java - 循环遍历 2 个不同的数组来评估 Java 中的条件

c++ - 准备两个具有相同 SSL_CTX 状态的应用程序数据