文章时效性提示
本文发布于 496 天前,部分信息可能已经改变,请注意甄别。
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include <stdio.h> void Insert(int* arr, int input) { int i=0; if (arr[8]>input) { for (i=0; i<10; i++) { if (arr[i]>input) { int j; for (j=9; j>i; j--) { arr[j] = arr[j-1]; } arr[i] = input; break; } } } else { arr[9] = input; } }
int main() { int arr[10] = {111,222,333,444,555,666,777,888,999}; int input; printf("请输入要插入的数字:->"); scanf("%d",&input); Insert(arr,input); int i; for (i=0; i<10; i++) { printf("%d ",arr[i]); } return 0; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include <stdio.h> #define ARR_LENGTH 10 void Insert(int* arr, int input) { int i=0; if (arr[ARR_LENGTH-2]>input) { for (i=0; i<ARR_LENGTH; i++) { if (arr[i]>input) { int j; for (j=ARR_LENGTH-1; j>i; j--) { arr[j] = arr[j-1]; } arr[i] = input; break; } } } else { arr[ARR_LENGTH-1] = input; } } int main() { int arr[ARR_LENGTH] = {111,222,333,444,555,666,777,888,999}; int input; printf("请输入要插入的数字:->"); scanf("%d",&input); Insert(arr,input); int i; for (i=0; i<ARR_LENGTH; i++) { printf("%d ",arr[i]); } return 0; }
|