首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C语言经典算法之建立链表1

C语言经典算法之建立链表1

/* 链表建立程序 */
#include"stdio.h"
#include<malloc.h>
#define NULL  0
#define LEN sizeof(struct student)
struct student
{long num;
int score;
struct student *next;
};
int n; /*全局变量n*/
struct student *creat()
{
struct student*head;
struct student *p1,*p2;
n=0;
p1=p2=(struct student *)malloc(LEN);
scanf("%ld%d",&p1->num,&p1->score);/*%d%d之间不应该有逗号*/
head=NULL;
  while(p1->num!=0)
    {n=n+1;
    if(n==1) head=p1;
    else p2->next=p1;
    p2=p1;
    p1=(structstudent*)malloc(LEN);
   scanf("%ld%d",&p1->num,&p1->score);
    }
   p2->next=NULL;
   return(head);
  }
void print(head)
struct student *head;
{struct student *p;
p=head;         /*在这里付值才可以*/
printf("\Now,These %d records are:\n",n);
if(head!=NULL)
  do
{printf("%ld%5d\n",p->num,p->score);
  p=p->next;
  }while(p!=NULL);
}
void main()
{struct student *head;
printf("input records:\n");
head= creat();
print(head);
}
返回列表