大神求解线性表删除问题
#include <stdio.h>int num=0;//num用来计算数组中数的个数,再插入时就num++,删除时就num--
void print(int a[100])//打印整个数组的函数,只带一个参数,默认数组长度为num
{
for(int i=0; i<num; i++)
printf("%d", a[i]);
printf("\n");
}
void print(int a[100], int length)//打印整个数组的函数,带两个参数,数组长度为length
{
for(int i=0; i<length; i++)
printf("%d", a[i]);
printf("\n");
}
void insert(int a[], int position, int value)//插入函数,a为数组,函数功能:在指定的
//位置position之前插入值value
{
int i,j;
i=position;//获取位置
j=value;//获取插入值
num++;
for(int k=num-1;k>=i;k--)
{
a[k]=a[k-1];
}
a[i-1]=j;
}
int find(int a[],int key)//查找函数,a为数组,key为要查找的数,函数功能"
//在数组a中查找key,如果找到返回在数组中的下标,找不到返回-1
{
int value=key;
int result=0;
for(int i=0;i<num;i++)
{
if (a[i]==value)
break;
}
if(i!=num)
return i;
else
return -1;
}
void del(int a[],int position){
int p=position;
for(int j=num-1;j>=p;j--)
{a[j-1]=a[j];}
num--;}
void main()
{
int a[100]={0};
int position=0,value=0,find_key=0;
printf("请输入数据个数:\n");
scanf("%d",&num);
for(int i=0;i<num;i++)
{
printf("请输入第%d个整数:",i+1);
scanf("%d",&a[i]);
}
print(a);
printf("请输入要删除的位置:");
scanf("%d",&position);
del(a,position);
print(a);}
输入 1 2 3 4
删除怎么会出现 144
删除哪里错了