c语言编程:输出数组中重复出现的数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编程:输出数组中重复出现的数相关的知识,希望对你有一定的参考价值。

假设给定一个长度为10的一维数组,然后用户任意输入10个整数。要输出重复出现的元素,且每个只输出一次。例如:输入1、2、6、4、5、2、2、8、9、6就输出2、6
这个我自己尝试了,但就是搞不定那个只输出一次,求教

#include<stdio.h>
int main()
int i,j,k=0,k1,p,a[10],b[5];
 for(i=0;i<10;i++)
   scanf("%d",&a[i]);
 for(i=0;i<9;i++)
   for(j=i+1;j<10;j++)
     if(a[j]==a[i])
 p=1;
  for(k1=0;k1<k;k1++)
    if(a[i]==b[k1])p=0;
  if(p)
  printf("%d ",a[i]);
   b[k++]=a[i];
    
 ;
 return 0;

参考技术A

为方便测试,直接初始化了数组

#include<stdio.h>
int main()

int a[10] =  1,2,6,4,5,2,2,8,9,6 ; //为方便测试,直接初始化了数组
int b[10] =  0 ;  //用b记录重复的数值
int i,j,k,l;
l = 0;
for (i = 0; i < 10; ++i)

for(j=i+1;j<10;++j)
if (a[i] == a[j])

for (k = 0; k < l; ++k) //遍历b,是否已记录

if (a[i] == b[k])
break;

if(k==l)  //没有,则加入,长度+1
   b[l++] = a[i];


for (i = 0; i < l; ++i)

printf("%d  ", b[i]);

printf("\\n");
return 0;

本回答被提问者和网友采纳

以上是关于c语言编程:输出数组中重复出现的数的主要内容,如果未能解决你的问题,请参考以下文章

C语言,删除数组中的重复数字然后输出

c语言编程序,输入10个整数,把其中重复出现的数删去 输出删除重复数后的各数

C语言删除数组重复数字

在c语言中输入数组两个数组,查找重复元素并输出怎么写啊

c语言如何判断一个数组中重复元素的个数,并输出这个个数的值?

数组中有一个数字出现次数超过数组长度一半,找出这个数字(用C语言解决)。要求时间复杂度尽量小。