Welcome

首页 / 软件开发 / 数据结构与算法 / 数组的插入、删除以及排序的实现

数组的插入、删除以及排序的实现2010-11-19数组的插入:

#include <stdio.h>
#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<x) b[i]=a[i]; /* 当循环中的i小于插入值的位置x时,每一个元素所放的位置不变 */
}
printf("this array is: ");
for (j=0;j<=size;j++)
printf("%5d",b[j]); /* 打印数组 */
printf(" ");
return 0;
}

数组的删除:

#include <stdio.h>
#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<x) b[i]=a[i];
}
printf("this array is: ");
for (j=0;j<=size-2;j++)
printf("%5d",b[j]);
printf(" ");
return 0;
}