题目:读取由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;
}