本實例將一個新數字插入已排序數組,並保持數組有序(後移元素)。
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