界GHZ 2021-11-10 17:20 采纳率: 33.3%
浏览 42
已结题

请求解答,数组练习题

3.2【设计型】有一个已排好序的数组(如{5, 12, 22, 34, 45, 55, 67, 78, 89, 98}),要求输入一个数后,按原来排序的规律将它插入到该数组中,然后求采用二分法查找新插入的数所在位置(下标)。假设:所有的数都互不相同。

  • 写回答

1条回答 默认 最新

  • 高棱 2021-11-10 17:42
    关注

    看下这个代码,稍加修改就可以实现你的功能了。

    #include <iostream>
    #include <string.h>
    using namespace std;
     
    void rnk(int x[20],int n) {
        int p = 0;
        for (int i = 0; i < n; i++) {
            for (p = 0; p < n-1-i; p++) {
                if(x[p] > x[p + 1])
                {
                    int tmp = 0;
                    tmp = x[p];
                    x[p] = x[p + 1];
                    x[p + 1] = tmp;
                }
            }
        }
            for (int i = 0; i < n; i++) {
            cout << x[i] << endl;        }
    }
    int main()
    {
        int a[20], t, i ,n= 0;
        char huiche;
        memset(a, 0, sizeof(a));
        while (cin >> t) {/*输入任意个整数(小于20个)*/
            huiche=(char)t;
            if(huiche == '\xA')break;
            a[i] = t;
            n++;
            i++;
        } 
        rnk(a,n);
      
    }
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题
  • ¥15 用ADS设计一款的射频功率放大器
  • ¥15 怎么求交点连线的理论解?