首页 >> 学信校园 >> 考试中心 >> 计算机 C 语言技巧 :C 数组的插入与删除以及排序 来源:中国 IT 实验室 2010 年 08 月 05 日 10:37 导读:数组的插入跟数组删除大体上差不多,当插入元素后,插入点后面的每一个元素向后移一个位置,而删除是向前移一个位置。 数组的插入: #include #define SIZE 10 int main() { int a[SIZE]={10,12,14,16,18,20,13,200,134,59}; /* 初始化数组 */ int b[SIZE+1]={0},i,j,x,v; /* b 数组为插入后的数组,新插入了一个元素,所以要在原数组的基础上加 1 */ printf(\"Please input insert addr:\"); scanf(\"%d\",&x); /* 插入值的位置 */ printf(\"Please input insert value:\"); scanf(\"%d\",&v); /* 插入值 */ for (i=0;i<=SIZE-1;i++) { if (i==x) { /* 循环数组 a,当数组 a 元素值的位置与插入值的位置相等时 */ b[i]=v; /* 把插入值赋给数组与数组 a 元素值相等的位置 i */ b[i+1]=a[i]; /* 把原来数组 a 中 i 位置的值赋下一个位置 */ } if (i>x) b[i+1]=a[i]; /* 当循环中的 i 大于插入值的位置 x 时,以后每一个元素所放的位置向后退一 格 */ if (i #define SIZE 10 int main() { int a[SIZE]={10,12,14,16,18,20,13,200,134,59}; int b[SIZE-1]={0},i,j,x,v; printf(\"Please input insert addr:\"); scanf(\"%d\",&x); for (i=0;i<=SIZE-1;i++) { if (i==x) b[i-1]=a[i]; if (i>x) b[i-1]=a[i]; if (i #define SIZE 15 main() { int a[SIZE]={900,2,3,58,34,76,32,43,56,70,35,234,532,543,2500}; int i,pass,hold,j=0,k=0; printf(\"Data items in oraginal ordern\"); for (i=0;i<=SIZE-1;i++) /* 打印排序前的数组 */ printf(\"%6d\",a[i]); for (pass=1;pass<=SIZE-1;pass++) { /* 比较的趟数 */ for (i=0;i<=SIZE-(pass+1);i++) { /* 比较一趟 ,注意这里的条件是 SIZE-(pass+1) */ if (a[i]>a[i+1]) { hold=a[i]; a[i]=a[i+1]; a[i+1]=hold; } } } printf(\"nData items in ascending ordern\"); for (i=0;i<=SIZE-1;i++) /* 打印排序后的数组 */ printf(\"%6d\",a[i]); printf(\"n\"); return 0; } Come on!