线性表问题求解
楼主小弟想通过结构体和数组搞个线性表,但出现了点小问题,望各位帮忙改改。
实现功能是新建,插入和删除。成员组成为学号,姓名,年龄。
#include<stdio.h>
#include<string.h>
typedef struct stu{
int num;
char name[20];
int age;
}studen;/*结构体定义*/
int count=0;
int main(void){
void creat(studen *p);
void delect(studen *p,int i);
void insert(studen *p,int i);
studen a[100];/*最大人数*/
char ch;
int i;
printf("please enter: 1 creat. 2 insert. 3 delect. 0 exit.");
ch=getchar();
while(ch!=0){
switch(ch){
case '1': creat(a);break;/*新建*/
case '2': printf("enter weizhi i");
scanf("%d",&i);
insert(a,i);/*插入*/
break;
case '3': printf("enter shangchu i");
scanf("%d",&i);
delect(a,i);/*删除*/
break;}
printf("please enter: 1 creat. 2 insert. 3 delect. 0 exit.");
ch=getchar();
}
return 0;
}
void creat(studen *p){
int num;
char name[20];
int age;
printf("enter num name age");
scanf("%d%s%d",&num,name[20],&age);
while(num>0){
p->num=num;
strcpy(p->name,name);
p->age=age;
p++;
count++;
printf("enter num name age");
scanf("%d%s%d",&num,name[20],&age);
}}
void insert(studen *p,int i){
for(;count>=i;count--)/*后移次数*/
p[count]=p[count-1];
printf("enter num name age");
scanf("%d%s%d",&p[i-1].num,p[i-1].name[20],&p[i-1].age);
count++;
}
void delect(studen *p,int i){
int j;
for(j=i;j<=count;j++)/*前移次数控制*/
p[j-1]=p[j];
}