Openjudge-计算概论(A)-第二个重复出现的数
2015-02-17 19:48
274 查看
描述:
给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"NOT EXIST"。
输入第一行为整数m,表示有m组数据。
其后每组数据分两行:
第一行为正整数n(3 < n < 500),表示数组的长度;
第二行是n个正整数,正整数间用空格分开。输出有m行输出,每行输出对于数组中第二个重复出现的正整数,如果没有,则输出字符串"NOT EXIST"。
样例输入
样例输出
给定一个正整数数组(元素的值都大于零),输出数组中第二个重复出现的正整数,如果没有,则输出字符串"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; }
相关文章推荐
- OpenJudge计算概论-细菌实验分组
- openjudge 计算概论 字符串 2:单词倒排
- OpenJudge计算概论-球弹跳高度的计算
- OpenJudge计算概论-二维数组右上左下遍历
- openjudge 计算概论 字符串6:字符串最大跨距
- openjudge 计算概论 字符串 3:过滤多余的空格
- OpenJudge计算概论-单词替换
- OpenJudge计算概论-短信计费
- OpenJudge计算概论-能被3,5,7整除的数
- OpenJudge计算概论-矩阵归零消减序列和
- OpenJudge计算概论-奇数求和
- OpenJudge计算概论-自整除数
- OpenJudge计算概论-整数的个数
- OpenJudge计算概论-鸡尾酒疗法
- OpenJudge计算概论-四大湖
- OpenJudge计算概论-忽略大小写比较字符串大小
- OpenJudge计算概论-异常细胞检测
- OpenJudge计算概论-寻找下标
- openjudge 计算概论 字符串 5:单词排序
- OpenJudge计算概论-点和正方形的关系【判断点是否在正方形内部】