高手帮帮忙!小弟菜鸟
#include <stdio.h> #include <stdlib.h>
#define MAXSIZE 20
typedef struct
{ int a[MAXSIZE];
int length;
}SqList;
SqList a,b,c;
void creat_list(SqList *L);
void print(SqList *l);
void insert_sq(SqList *L,SqList *q,int e);
main()
{ int i,k,loc, e;
do { printf("\n\n\n");
printf("\n 1. 建立非递减有序线性表 " );
printf("\n 2. 插入元素e");
printf("\n 3. 结束程序运行");
printf("\n======================================");
printf("\n 请输入您的选择(1,2,3)");
scanf("%d",&k);
SqList q={{0},0};
switch(k)
{ case 1:{ creat_list(&a); print(&a);
} break;
case 2:{ printf("\n e=?"); scanf("%d",&e);
insert_sq(&a,&a,e); print(&a);
} break;
}
}while(k!=3);
printf("\n 再见!");
printf("\n 打回车键,返回。");
}
void creat_list(SqList *L)
{ int i;
printf("\n n=?"); scanf("%d",&L->length);
for(i=0;i<L->length;i++){ printf("\n data %d=?",i);
scanf("%d",&(L->a[i]));
}
}
void insert_sq(SqList *L,SqList *q,int e)
{ int i,k;
i=k=0;
if(L->length+1<=MAXSIZE)
{
while(i<L->length)
{
if(L->a[i]<e)
{
q->a[k]=L->a[i];
i++;
k++;
}
else{
q->a[k]=e;
k++;
}
}
while(i<L->length)
{
q->a[k]=L->a[i];
i++;
k++;
}
q->length=L->length+1;
}
else printf("out of bound");
}
void print(SqList *l)
{
int i;
for(i=0;i<l->length;i++)
{
printf("%d ",l->a[i]);
}
}
小弟刚刚学习线性表,下午的讨论课又吃瘪了,本人决心学好这门课