Rockiswu 2021-08-15 08:16 采纳率: 87.9%
浏览 829
已结题

c++查找最接近的元素

在一个非降序列中,查找与蒜头君的给定值最接近的元素。

img

img
我的代码:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    int a[10001000];
    for(int i=1;i<=n;i++) cin>>a[i];
    int m;cin>>m;
    for(int i=1;i<=m;i++)
    {
        int x;
        cin>>x;
        for(int j=1;j<=n;j++)
        {
            if(a[j]>=x)
            {
                if(abs(a[j]-x)<abs(a[j-1]-x)) cout<<a[j]<<endl;
                else cout<<a[j-1]<<endl;
                break;
            }
            if(j==n) cout<<a[n]<<endl;
        }
    }
    return 0;
}

  • 写回答

3条回答 默认 最新

  • aaaa0ggMC 2021-08-15 09:27
    关注

    这里:
    (代码挺少,按照了你的格式)

    #include <bits/stdc++.h>
    #include <malloc.h>//其他编译器可能是stdlib.h,cstdlib
    
    using namespace std;
    
    int main(void){
        int n;
        cout << "in:";
        cin >> n;//数量
        int * m = (int*)malloc(sizeof(int) * n);
        for(int i =0;i < n;i++)cin >> m[i];
        int timec = 0;
        cout << "in:";
        cin >> timec;
        for(int i = 0;i < timec;i++){
            int z = 0;
            int nowMax = m[0];
            cout << "in:";
            cin >> z;
            for(int x = 0;x < n;x++){
                if(nowMax != m[x]){
                    if(abs(m[x]-z) < abs(nowMax-z)){
                        nowMax = m[x];
                    }
                }
            }
            cout << "o:" << nowMax << endl;
        }
        return 0;
    }
    

    输出:
    in:10
    1 3 5 8 9 10 11 25 14 56
    in:3
    in:10
    o:10
    in:12
    o:11
    in:24
    o:25

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下: