C语言-输出数组内重复的元素-使用最简单的循环结构(重复次数可能不止一次)

题目:读取由10个元素组成的数组,并选择在另一个数组中出现多次的所有数字。 在结果数组中,这些数字不应重复。


例如:
Input
4 1 2 1 11 2 34 8 9 10
Output
1 2


Input
1 1 1 1 1 1 1 1 1 1
Output
1


#include <stdio.h>
int main()
{
 const int N = 10;
 int a[N];
 int tmp[5];           //重复项数组(数组元素最多为5)
 int mid = 0;          //用于纪录有几个重复元素
 for (int i = 0; i < N; i++)
 {
  scanf("%d", &a[i]);       //输入
  for (int j = 0; j < i; j++)
  {
   if (a[i] == a[j])       //将之前输入的所有元素与当前元素对比是否相同,
   {
    tmp[mid] = a[j];      //如果相同则将其赋值给重复项数组
    mid++;
       
    for (int p = 0; p < mid - 1; p++)  //另取一循环判断重复项数组内的元素是否重复(mid-1是因为上式++)
    {
     if (tmp[p] == tmp[mid - 1])
     {
      tmp[mid - 1] = '/0';   //将重复项数组内的重复元素置0,并将mid前置重新赋值
      mid--;
     }
    }
   }
  }
 }
 for(int i = 0; i < mid; i++)      //输出重复项数组内已有的元素
  printf("%d ", tmp[i]);
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值