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

描述:

给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"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):
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int m,n,a[505],i,j,flag;
 5     scanf("%d",&m);
 6     while(m>0)
 7     {
 8         scanf("%d",&n);
 9         for(i=0;i<n;i++)
10         {
11             scanf("%d",&a[i]);
12         }
13         flag=0;
14         for(i=0;i<n-1;i++)
15         {
16             for(j=i+1;j<n;j++)//从第二位开始找 
17             {
18                 if(a[j]==a[i])//如果发现相等的话 
19                 {
20                     flag++;//记录器++ 
21                     break;//跳出 
22                 }
23             }
24             if(flag==2)//是第二个重复出现的数 
25             {
26                 printf("%d\n",a[i]);//输出那个数 
27                 break;
28             }
29         }
30         if(flag!=2) printf("NOT EXIST\n");//否则找不到 
31         m--;
32     }
33     return 0;
34 }

 

posted @ 2015-02-17 19:48  Memoryヾノ战心  阅读(505)  评论(0编辑  收藏  举报