|
请问,下面的代码为何得不到正确结果?
是函数调用的问题么?
#include <stdio.h>
#define DATATYPE1 int
#define MAXSIZE 100
typedef struct
{
DATATYPE1 datas[MAXSIZE];
int last;
}SEQUENLIST;
void insert(SEQUENLIST a,DATATYPE1 x,int i);
int main(){
int i,locate;
SEQUENLIST order_list;
DATATYPE1 data;
printf("请输入顺序表长度:");
scanf("%d",&order_list.last);
printf("初始化该顺序表,即分别赋值\n");
for(i=0;i<order_list.last;i++)
scanf("%d",&order_list.datas);
printf("打印该顺序表\n");
for(i=0;i<order_list.last;i++)
printf("b.data[%d]=%d\n",i,order_list.datas);
printf("请输入你要插入的数据:");
scanf("%d",&data);
printf("请输入你要插入的位置:");
scanf("%d",&locate);
//插入函数的调用
insert(order_list,data,locate);
printf("插入数据后结果为:\n");
for(i=0;i<order_list.last;i++)
printf("order_list.datas[%d]=%d\n",i,order_list.datas);
return 0;
}
void insert(SEQUENLIST la,int x,int i)
//将新元素x插在顺序表a的第i(1<=i<=la.last+1)个元素的前面
{
int k;
if(i<1||i>la.last+1||la.last>=MAXSIZE)
return ;
else{
for(k=la.last;k>=i;k--)
la.datas[k]=la.datas[k-1];
la.datas[k]=x;
la.last++;
}
} |
|