您的位置:首页 > Web前端

求第三便宜的帽子

2017-05-26 17:21 218 查看
题目描述:

度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?

  输入描述: 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)   

  输出描述: 如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1 

 输入例子: 10 (个数)

10 10 10 10 20 20 30 30 40 40  

输出例子: 30

#include<iostream>
#include <algorithm>

#include<vector>
using namespace std;
void find_thirdpoor(int *arr,int len){

vector<int> res;
int i=0;
for(;i<len;i++){
res.push_back(arr[i]);
}
sort(res.begin(),res.end());
int equalnum=0;
int tempdata=res[0];
i=0;
for(;i<res.size();i++){
if(res[i]!=tempdata)
{
tempdata=res[i];
equalnum++;
if(equalnum==2){
cout<<tempdata<<endl;
break;
}
}
}
if(equalnum!=2){
cout<<-1<<endl;
}
}

int main(){
int arr[]={10,10,10,10,20,20,15,30,30,40,40};
int n=sizeof(arr)/sizeof(arr[0]);

find_thirdpoor(arr,n);
system("pause");
return 0;
}
测试输出结果:

测试用例:1. int arr1[]={10,10,10,10,20,20,30,30,40,40};

                  2.int arr2[]={10,10};

                  3.nt arr3[]={10,10,10,10};

void test(){
int arr1[]={10,10,10,10,20,20,30,30,40,40};
int n1=sizeof(arr1)/sizeof(arr1[0]);
find_thirdpoor(arr1,n1);

int arr2[]={10,10};
int n2=sizeof(arr2)/sizeof(arr2[0]);
find_thirdpoor(arr2,n2);

int arr3[]={10,10,10,10};
int n3=sizeof(arr3)/sizeof(arr3[0]);
find_thirdpoor(arr3,n3);

system("pause");

}
输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐