有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
解题思路:
首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
代码:
int main(void) {
int a[11] = { 1,4,6,9,13,16,19,28,40,100 };
int temp, number, end, i, j;
printf("original array is:\n");
for (i = 0; i < 10; i++)
printf("%5d", a[i]);
printf("\n");
printf("insert a new number:");
scanf_s("%d", &number);
for (int i = 0; i < 10; i++) {
if (number < a[i]) {
for (int j = 10 ; j > i; j--) {
a[j ] = a[j - 1];
}
a[i] = number;
break;
}
}
for (i = 0; i < 11; i++)
printf("%5d", a[i]);
return 0;
}