求第三便宜的帽子


题目描述:

度度熊想去商场买一顶帽子,商场里有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");
    
}
输出结果:




猜你喜欢

转载自blog.csdn.net/wodeqingtian1234/article/details/72771811