您的位置:首页 > 运维架构

Openjudge-计算概论(A)-第二个重复出现的数

2015-02-17 19:48 274 查看
描述:

给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"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[505],i,j,flag;
scanf("%d",&m);
while(m>0)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
flag=0;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)//从第二位开始找
{
if(a[j]==a[i])//如果发现相等的话
{
flag++;//记录器++
break;//跳出
}
}
if(flag==2)//是第二个重复出现的数
{
printf("%d\n",a[i]);//输出那个数
break;
}
}
if(flag!=2) printf("NOT EXIST\n");//否则找不到
m--;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: