请你找出小A能够购买的最贵的一件礼品(价格)。 输入格式 第一行一个整数N,为商品的种类。 第二行N个正整数,为各类商品的价格。 第三行一个整数M,为小A的零钱。 输出格式 一行一个整数,为小A能够购买的最贵礼品的价格。 样例输入 5 3 1 5 2 4 6 样例输出 5 ?
解决方式有多种。
1、对第二行输入的数据进行排序。然后遍历排序后的数组,遍历过程中找到第一个大于第三行输入的数的下标。输出数组中下标-1的内容。
就是从数组中找小于等于M的最大数
#include <iostream>
using namespace std;
int main()
{
int N,M;
cin >> N;
int *Narr = new int[N];
for(int i=0;i<N;i++)
{
cin >> Narr[i];
}
cin >> M ;
int max=0;
for(int i=0;i<N;i++)
{
if(Narr[i]<=M &&Narr[i]>max)
{
max=Narr[i];
}
}
cout << max << endl;
return 0;
}