|
练习题:
ver0.3 改进了一下,增加了通用性
- /* 在一个有序数列中插入一个任意数;要求插入后
- * 阵列仍然保持有序,并输出。
- * 阵列如:0, 1, 2, 3, 5, 6, 7, 8, 9
- * Copyright seablue at linuxsir.cn
- * Version 0.3.0
- * 2004-05-21
- */
- #include <stdio.h>
- void insort(x,l,n)
- int l,x[],n;
- { int i,k;
- /* l为数组总长度,n是数组实际长度;
- * 如果数组没有多余空间,给出警告信息。
- */
- if (l <= n) printf("\nArray full!\n");
- else
- /* 输入一个任意数。
- */
- { printf("\nPlease input the value for inserting:\n");
- scanf("%d",&k);
- /*
- * 找到输入的数k的合适位置,并把大于k的数向右移动一个位置。
- */
- for (i = n-1; (i >= 0)&&(k < x[i]); i--)
- x[i+1]=x[i];
- x[i+1]=k;
- /*
- * 打印插入后的有序数列。
- */
- for (i = 0; i < (n+1); i++)
- printf("%d ",x[i]);
- printf("\n");
- }
- }
- main()
- { int a[10] = { 0, 1, 2, 3, 5, 6, 7, 8, 9 };
- /*
- * insort()自定义函数的用法,调用。
- * insort(array_name, length_of_array_defined, length_of_array_used)
- */
- insort(a,10,9);
- }
复制代码 |
|