zoukankan      html  css  js  c++  java
  • 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
    ",a[i]);//输出那个数 
    27                 break;
    28             }
    29         }
    30         if(flag!=2) printf("NOT EXIST
    ");//否则找不到 
    31         m--;
    32     }
    33     return 0;
    34 }
    我不怕千万人阻挡,只怕自己投降…
  • 相关阅读:
    LeetCode18. 四数之和
    15. 三数之和
    LeetCode202. 快乐数
    LeetCode1. 两数之和
    LeetCode349. 两个数组的交集
    LeetCode242. 有效的字母异位词
    VSCode运行时弹出powershell
    关于cin, cin.get(), getchar(),getline()的字符问题
    剑指 Offer 27. 二叉树的镜像
    BFS zoj 1649
  • 原文地址:https://www.cnblogs.com/geek-007/p/4295418.html
Copyright © 2011-2022 走看看