描述:
给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"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 }
转载于:https://www.cnblogs.com/geek-007/p/4295418.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)