首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言實例練習

C語言練習實例39:有序數組插入元素保持有序

     編輯:C 語言實例練習

C語言練習實例39:有序數組插入元素保持有序

本實例將一個新數字插入已排序數組,並保持數組有序(後移元素)。

程序邏輯

  • 初始數組 10 個元素,預留第 11 位空間。
  • 若新數大於最後一個元素,直接放在末尾。
  • 否則遍歷找到第一個大於新數的位置 i,將 a[i] 及之後元素依次後移一位,插入新數。

源代碼

// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鳥教程. All rights reserved.
//
#include <stdio.h>

int main() {
    int a[11] = {1,4,6,9,13,16,19,28,40,100};
    int temp1, temp2, number, end, i, j;
    printf("原始數組是:\n");
    for (i = 0; i < 10; i++) printf("%4d", a[i]);
    printf("\n插入一個新的數字: ");
    scanf("%d", &number);
    end = a[9];
    if (number > end) a[10] = number;
    else {
        for (i = 0; i < 10; i++) {
            if (a[i] > number) {
                temp1 = a[i];
                a[i] = number;
                for (j = i+1; j < 11; j++) {
                    temp2 = a[j];
                    a[j] = temp1;
                    temp1 = temp2;
                }
                break;
            }
        }
    }
    for (i = 0; i < 11; i++) printf("%4d", a[i]);
    printf("\n");
    return 0;
}

運行示例

原始數組是:
   1   4   6   9  13  16  19  28  40 100
插入一個新的數字: 10
   1   4   6   9  10  13  16  19  28  40 100
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved