方法一:傻的很直接的算法(当然是我脑子最直接想到的,反复用if语句,毫无美感【dog】)
假设数组a[11](数组中含有10个元素,待会插入一个为防止溢出,故设11个内存空间)已按升序排好,则很容易知道a[0]为最小值,a[9]为最大值,那么插入的数num无非就是三种情况:
①比最小值小或等于最小值。则num的值赋给a[0],数组原来的元素全部后退一位。很容易想到先把原来数组的值放到一个空数组中(b[11]),num给a[0]赋值完毕后,a[i+1]=b[i]。
②比最大值大。直接放入数组末尾即可。
③在最大值和最小值之间(或等于最大值,则认为大于倒数第二个,符合第三点)。找到num大于的那个元素的下标n,将num赋值给a[n],原来的往后排就行了。先故技重施,找个空数组b[11]将a[11]的元素放入,num给a[n]赋值完毕后,a[i+1]=b[i],此时i=n。

#include<stdio.h>
int main()
{int a[11]={2,3,4,5,6,7,8,13,18,20};int b[11];int num,n,i;printf("请给num赋值\n");scanf("%d",&num);if(num<=a[0]){for(i=0;i<10;i++){b[i]=a[i];}a[0]=num;for(i=0;i<10;i++){a[i+1]=b[i];}}else if(num>a[9]){a[10]=num;}//当num的值在最小值和最大值之间时,我的赋值操作失败else {for(i=0;i<10;i++){if(num>a[i]){n=i+1;}}for(i=0;i<10;i++){b[i]=a[i];}a[n]=num;for(i=n;i<10;i++){a[i+1]=b[i];}printf("n=%d\n",n);}printf("最后,数组值为:\n");for(i=0;i<11;i++){printf("%d  ",a[i]);}return 0;
}

课本答案与本答案思路一致,但课本用的程序设计似乎高级一点。向课本学习。

有一个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中相关推荐

  1. C语言学习之有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

    有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 #include <stdio.h> void main(){int a[11]={25,32,65,74,84,9 ...

  2. 有一个已排好序的数组 要求输入一个数后 按原来排序的规律将它插入数组中

    有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中 思路:先定义一个数组,留出一个位置,给输入的那个数一个地方.然后分两种情况: 1:输入的数比最大的数小,两两交换位置,直到大于相 ...

  3. 4.19 C语言练习(已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中)

    [练习] 题目要求:已有一个已正序排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中. 输入:第一行,原始数列. 第二行,需要插入的数字. 输出:排序后的数列例如:输入:1 7 8 ...

  4. 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。

    题目描述 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中. 输入 第一行,原始数列. 第二行,需要插入的数字. 输出 排序后的数列 样例输入 1 7 8 17 23 2 ...

  5. ACMNO.20 C语言-插入队列 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中。 输入 第一行,原始数列。 第二行,需要插入的数字。

    题目描述 已有一个已排好的9个元素的数组,今输入一个数要求按原来排序的规律将它插入数组中. 输入 第一行,原始数列. 第二行,需要插入的数字. 输出 排序后的数列 样例输入 1 7 8 17 23 2 ...

  6. c语言:“有一个已排好序的数组,要求输入一个数后,按原来的规律将它插入数组中” 的程序分析及详细代码

    先来分析思路: 已经排好序的数组,有两种情况,一种是顺序,一种是逆序,由于该数组是自己给出的,所以我们不妨将该数组的顺序设为顺序. 1.我们需要创建一个顺序数组(a[ ]),创建时要注意,我们要确保数 ...

  7. 有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中。——C与C++实现

    题目:一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中.(本例中输入的是一个升序的数组) 程序分析: (1)判断输入的数是否大于数组中最后一个元素,如果成立,将输入的数插入数组的末尾 ...

  8. Python Challenge-39 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    #题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. #!/usr/bin/python 3 # -*- coding: UTF-8 -*- #两种方法_Author_ = ...

  9. C++经典算法题-有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    1. 题目 题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 2. 分析 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次 ...

  10. C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

    例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...

最新文章

  1. robots协议是什么?对网站SEO有什么好处?
  2. jQuery操作DOM元素案例
  3. oracle中使用sql查询时字段为空则赋值默认
  4. English Note_1_传统学习英语的误区
  5. Sendmail 邮件服务器安装和优化
  6. HFSS19 官方中文教程系列 L05
  7. python 百度翻译破解版,亲证可行
  8. Everything搜索_使用方法
  9. 【数学逻辑思维】A 好玩的数独游戏——002
  10. Android 圆形颜色拾取器代码,android 颜色拾取控件 ColorPickerDialog
  11. 6PSS并联结构的运动学正逆解推导
  12. chrome 浏览器升级后接口无法正常访问
  13. Top 50 有趣网站
  14. CVPR2020(Enhancement):论文解读《Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement》
  15. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(四)
  16. 酒浓码浓 - ios进入页面自动弹出键盘
  17. 又一大型色情直播App被捣毁,女主播哭求别告诉家人
  18. 正则表达式限制非中文字符输入
  19. 前端面试查漏补缺--(三) 跨域及常见解决办法
  20. 基于 springBoot 实现webSocket方式的扫码登录

热门文章

  1. CC00229.CloudKubernetes——|KuberNetes细粒度权限控制.V13|——|Ratel.v01|k8s资源管理平台部署|
  2. [Windows] 迅雷 无修改 无限制 无视封锁
  3. IO流,小白入门基础知识
  4. 【渝粤教育】国家开放大学2018年秋季 8180-22T (1)畜禽生产概论 参考试题
  5. IDEA使用database时,连接MySQL后schemas不显示数据库名的情况
  6. iwifi 技术规范
  7. 大疆创新2019校招
  8. iOS 开发者必知的 75 个工具(译文)
  9. 10347 忙碌又贪心的泥瓦匠
  10. 2020年车易加加油优惠卡开启移动加油新时代