C语言中,数组是一组连续的相同类型的数据集合。 所以要在数组中插入元素,需要按照以下步骤:
1、找到插入点;
2、将插入点所在元素,及之后的所有元素,都向后移动一个单位;
3、将插入点赋值为要插入的元素。
以固定位置插入,代码举例如下:
#include
void insert(int *a, int n, int i, int v)
//将长度为n的数组a, 下标为i的位置插入值为v的元素。 插入后,数组长度为n+1.
{
int j;
for(j = n-1; j>=i; j --)//将i及以后的后移一位。 由于是固定位置插入,所以不需要查找插入位置。
a[j+1] = a[j];
a[i] = v;//插入元素。
}
int main()
{
int a[5] = {1,3,6,7};/五个元素数组,初始化四个值。
int i;
insert(a, 4, 2, 5);//将5插入到a[2]位置。
for(i = 0; i < 5; i ++)
printf("%d ", a[i]);//输出结果,为1 3 5 6 7
return 0;
}
#include {
#include
void main()
{
int *p = NULL;
int i,t,j,n;
printf("请输入数组元素个数:\n");
scanf("%d", &n);
p = new int[n];
printf("请输入数组元素,以回车隔开。\n");
for(i=0;i
scanf("%d", p+i);
}
for(i=0;i
t=p[i];
j=i-1;
while(j>=0&&t
p[j+1]=p[j];
j--;
}
p[j+1]=t;
}
for(i=0;i
#include
int main()
{
int i;
int a[10] = {0, 4, 10, 100, 200, 321};
int n;
printf("输入需要插入的值: \n");
scanf("%d", &n);
printf("插入前: ");
for (i = 0; i < 10; i++){
printf("%d\t", a[i]);
if (a[i] > a[i + 1])
{
printf("\n");
break;
}
}
for (; i > 0; i--){
if (a[i] > n)
a[i + 1] = a[i];
else{
a[i + 1] = n;
break;
}
}
printf("插入后: ");
for (i = 0; i < 10; i++){
printf("%d\t", a[i]);
if (a[i] > a[i + 1])
{
printf("\n");
break;
}
}
return 0;
}
#include
#include
#include
int main()
{
int n;
int a[101];
int i;
scanf("%d",&n);
for(i = 0;i
sort(a,a+n);
for(i=0;i
system("pause");
}