描述:
给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"NOT EXIST"。
输入第一行为整数m,表示有m组数据。
其后每组数据分两行:
第一行为正整数n(3 < n < 500),表示数组的长度;
第二行是n个正整数,正整数间用空格分开。输出有m行输出,每行输出对于数组中第二个重复出现的正整数,如果没有,则输出字符串"NOT EXIST"。
样例输入
5
10
1 3 5 7 9 7 8 5 2 6
10
1 3 5 5 7 9 7 8 2 6
10
1 3 5 5 7 9 4 8 2 6
10
1 3 5 7 2 9 9 8 7 5
10
1 3 5 2 7 9 9 8 7 5
样例输出
7
7
NOT EXIST
7
7
思路:这题用两重循环来寻找第二个重复出现的数,具体实现过程看代码。
代码如下(本代码来自我的老师:http://www.cnblogs.com/huashanqingzhu/p/3464506.html):
#include<stdio.h>
int main()
{
int m,n,a[],i,j,flag;
scanf("%d",&m);
while(m>)
{
scanf("%d",&n);
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
}
flag=;
for(i=;i<n-;i++)
{
for(j=i+;j<n;j++)//从第二位开始找
{
if(a[j]==a[i])//如果发现相等的话
{
flag++;//记录器++
break;//跳出
}
}
if(flag==)//是第二个重复出现的数
{
printf("%d\n",a[i]);//输出那个数
break;
}
}
if(flag!=) printf("NOT EXIST\n");//否则找不到
m--;
}
return ;
}