顺序表基本问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 10:53:45
编写了个程序 要求完成顺序表的定义插入删除
程序如下:
#include <stdio.h>
void insert(int m,int q,float num[])
{ int n;
if(m>strlen(num))
{
printf("error!");
return;
}
else
{for(n=m+1;n<strlen(num);n++)
num[n++]=num[n];
num[m+1]=q;
return;
}
}

void delete(int s,float num[])
{ int n;
if(s>=strlen(num))
{
printf("error!");
return;
}
else
{for(n=strlen(num)-1;n>s;n--)
num[n-1]=num[n];
return;
}
}

main()
{int i,j,k,r;
float num[50];
printf("Please input the numbers:");
for(i=0;num[i]!='\n';i++)
scanf("%f",&num[i]);
printf("\n");
printf("Please input the position to insert after and the number to insert :");
scanf("%f,%f",&j,&k);

strlen只能用char*做参数,且必须是以''\0''结尾的。
你那编译器能编译通过,编译器就好垃圾了,连这种错误都检查不出来
你还有问题,顺序表里的数据移动赋值应该这么写
num[n++]=temp;temp=num[n];
num[n]=num[n++];
num[m+1]=q;
估计你的程序就这些问题