📄 c05_04.c
字号:
/* 一维数组的插入和删除 */
#include <stdio.h>
#define MAXNUMBER 30 /* 定义一维数组允许的最大元素个数,第7章会介绍#define */
int main()
{
int n = 5; /*当前数组元素的个数*/
int array[MAXNUMBER] = {12,5,7,6,32}; /*定义一维数组并初始化*/
int value; /*要插入或被删除的元素值*/
int location; /*要插入或删除的位置*/
int i;
printf("修改前的数组:\n");
for (i = 0; i < n; i++)
printf("%5d",array[i]);
/*----------数组的插入操作--------------*/
printf("\n请输入要插入的元素值: ");
scanf("%d",&value);
printf("请输入要插入的位置(1..%d): ",n);
scanf("%d",& location);
if ((location <1)||( location >n)) /*插入位置不在数组中时的出错处理*/
{ /*允许插入的位置是[0,n-1]*/
printf("插入的位置超出范围!!\n");
return -1;
}
if (n == MAXNUMBER)
{ /*整个数组已达到最大长度,已不能再插入数据元素*/
printf("数组已达到最大长度,再插入将超出范围!!\n");
return -1;
}
n++; /*添加元素时,当前数组元素的个数加1*/
for (i=n; i>location-1; i--)
array[i]=array[i-1]; /*向后移动元素*/
array[location-1]=value; /*插入点赋值*/
printf("插入后的数组为:\n"); /*输出插入后的数组*/
for (i = 0; i < n; i++)
printf("%5d",array[i]);
/*----------数组的删除操作--------------*/
printf("\n请输入要删除第几个元素(1..%d):",n);
scanf("%d",& location);
if ((location <1)||( location >n)) /*要删除位置不在数组中时的出错处理*/
{ /*允许删除的位置是[0,n-1]*/
printf("删除的位置超出范围!!\n");
return -1;
}
value = array[location-1]; /*得到删除点的值*/
printf("将被删除的元素值为:%d\n", value);
for (i= location - 1; i<n-1; i++)
array[i]=array[i+1]; /*向前移动元素*/
n--; /*删除元素时,当前数组元素的个数减1*/
printf("删除后的数组为:\n"); /*输出删除后的数组*/
for (i = 0; i < n; i++)
printf("%5d",array[i]);
printf("\n");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -