题目描述
找出一列数字当中找出这样的一个数,比输入的整数 X 更小,但是最接近X的整数。
输入
第一行包含两个正整数 n 和 x,整数n 表示第二行有多少个正整数。
第二行包含n个正整数。(输入会保证至少有一个小于x 的整数)
输出
一行包含一个正整数,表示小于整数x 并且最接近x的数。
样例输入 Copy
5 4
3 2 1 8 7
样例输出 Copy
3
写法如下,把所有小于x的数都数出了,哪里不对啊?
题目描述
找出一列数字当中找出这样的一个数,比输入的整数 X 更小,但是最接近X的整数。
输入
第一行包含两个正整数 n 和 x,整数n 表示第二行有多少个正整数。
第二行包含n个正整数。(输入会保证至少有一个小于x 的整数)
输出
一行包含一个正整数,表示小于整数x 并且最接近x的数。
样例输入 Copy
5 4
3 2 1 8 7
样例输出 Copy
3
写法如下,把所有小于x的数都数出了,哪里不对啊?
应该是没有考虑最接近x这个情况,修改了一下,如下:
#include <iostream>
using namespace std;
int main(){
int n,x,y;
cin>>n>>x;
int nearx=0;
for(int i=1;i<=n;i++){
cin>>y;
if(y<x&&y>nearx)
nearx=y;
}
cout<<nearx;
return 0;
}