• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
yxyfj
博客园    首页    新随笔    联系   管理    订阅  订阅
已知一个排好顺序的原数组的情况下再插入一个数并不改变数组排序规律

题目如下

 

 代码如下

 1 #define _CRT_SECURE_NO_WARNINGGS 1
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int a[11] = { 1, 4, 6, 9, 13, 16, 19, 28, 40, 100 };
 6     int temp_1, temp_2, number, end, i, j;
 7     puts("请输入要插入的整数:\n");
 8     scanf_s("%d", &number);
 9     end = a[9];
10     if (number >= end)//这种情况不需要移动位置,所以要首先排除
11     {
12         a[10] = number;
13     }
14     else
15     {
16         for (i = 0; i < 10; i++)
17         {
18             if (a[i] > number)//碰上更大的就要停下来(同时也意味着他比前一个大)
19             {
20                 temp_1 = a[i];
21                 a[i] = number;//把大数位置取代掉并同时保留大数在后面用
22                 for (j = i + 1; j < 11; j++)//关键部分
23                 {
24                     temp_2 = a[j];
25                     a[j] = temp_1;
26                     temp_1 = temp_2;
27                 }
28                 break;
29             }
30         }
31     }
32     for (i = 0; i < 11; i++)
33     {
34         printf("%4d", a[i]);
35     }
36     return 0;
37 }

结果如下

 

 

posted on 2022-12-11 20:20  印象与风景  阅读(99)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3