请大家帮帮我 2
ML20 2002-04-13 11:42:12 我是一名会计专业的大二学生,今年初对计算机产生了浓厚的兴趣,刚刚学完C语言,现在正在学数据结构,不知怎么学.只知道把书中的伪代码改成C代码上机执行.可是改后的总是出毛病,这不,又错了.我想用showlist()显示表中的值,用getelem()获得第N个值,可是不对.请大家帮我看看.
#include <stdio.h>
#include <stdlib.h>
struct lnode{
int data;
struct lnode * next;
};
void getelem(struct lnode *li,int i,int *e);
void showlist(struct lnode *li);
void createlist(struct lnode *li,int n);
int main(){
struct lnode lin;
int n;
int e;
int c;
printf("\nHow many members do you want:");
scanf("%d",&n);
createlist(&lin,n);
showlist(&lin);
printf("\nWhich value you want to got:");
scanf("%d",&c);
getelem(&lin,c,&e);
printf("\nThe value is %d.",e);
getchar();
getchar();
return 0;
}
void getelem(struct lnode *li,int i,int *e){
struct lnode *pl;
register int j;
pl=li->next;
j=1;
while(pl&&j<i){
pl=pl->next;
++j;
}
*e=pl->data;
}
void showlist(struct lnode *li){
struct lnode * se;
se=li->next;
printf("\n");
while(se){
printf("%d\t",se->data);
se=se->next;
}
} /*showlist*/
void createlist(struct lnode *li,int n){
register int i;
struct lnode *p;
li=(lnode *)malloc(sizeof(lnode));
li->next=NULL;
for(i=n;i>0;--i){
p=(lnode *)malloc(sizeof(lnode));
printf("\nNow enter the value of this member:");
scanf("%d",&(p->data));
p->next=li->next;
li->next=p;
}
} /*createlist*/