当前位置: 代码迷 >> C语言 >> [求助]关于链表的创建与输出操作
  详细解决方案

[求助]关于链表的创建与输出操作

热度:121   发布时间:2007-01-08 10:55:14.0
[求助]关于链表的创建与输出操作

#include <stdio.h>
#include <stdlib.h>

struct studentinfo
{
char name[20];
char num[20];
int score[20];
struct studentinfo *next;
}
typedef struct studentinfo NODE;


NODE *create_linklist (int i);
//void insert_linklist (NODE *head,NODE *pnew,int i);
//void delete_linklist (NODE *head,int i);
void display_linklist (NODE **pstu,int num);
void free_linklist (NODE **pstu,int num);

NODE *create_linklist (int i)
{
NODE *p;
p=(NODE *)malloc (sizeof(NODE));
if (p=NULL)
return NULL;
printf("\n====input %th student's information==== \n",i+1);
printf("NO.: ");
scanf("%s",p->num);
printf("Name: ");
scanf("%s",p->name);
fflush(stdin);
for (i=0;i<3;i++)
{
printf("Score %d: ",i+1);
scanf("%d",&p->score[i]);
}
return p;
}
void free_linklist (NODE **pstu,int num)
{
int i;
for (i=0;i<num;i++)
free(pstu[i]);
free(pstu);
}
void display_linklist (NODE **pstu,int num)
{
NODE *p;
for (p=pstu->next;p!=NULL;p=p->next)
{
printf("%s",p->num);
printf("%s",p->name);
for (int j=0;j<3;j++)

printf("%d",p->score[j]);
printf("\n");
}


}
void main()
{
NODE **pstu;
int i,num;

printf("input the number of the students: ");//输入学生人数
scanf("%d",&num);
if (num<=0)
return;
pstu=(NODE **)malloc (num*sizeof(NODE *));
if (pstu==NULL)
{
printf("not enough memory!\n");
return;
}


for (i=0;i<num;i++)
{
pstu[i]=create_linklist (i);
if (pstu[i]==NULL)
{
printf("not enough memory!\n");
free_linklist (pstu,i);
}
}
}

搜索更多相关的解决方案: 链表  输出  

----------------解决方案--------------------------------------------------------
你是什么意思啊~~

----------------解决方案--------------------------------------------------------

我想建一个表,然后把我的数据输出来。可是好像有错误。所以帮我看看


----------------解决方案--------------------------------------------------------
  相关解决方案