c语言指针链表

来源:互联网 发布:算法还是编码 编辑:程序博客网 时间:2024/06/03 14:09

#include<stdio.h>#include<stdlib.h>struct NODE{int num;char name[20];char sex;float score;struct NODE *next;};struct NODE *creat(){int n;struct NODE *head, *pf, *pb;int i;printf("how many student:");scanf("%d", &n);for (i = 0; i < n; i++){pb = (struct NODE*)malloc(sizeof(struct NODE));printf("input the %d student:\n", i + 1);scanf("%d", &(pb->num));scanf("%s", (pb->name));scanf("%c");scanf("%c", &(pb->sex));scanf("%f", &(pb->score));if (i == 0) pf = head = pb;else pf->next = pb;pb->next = NULL;pf = pb;}return(head);}struct NODE *findmax(struct NODE *n){if (NULL == n){printf("错误:链表为空\n");exit(-1);}struct NODE *head;struct NODE *max;max = n;head = n;while (1){if (head->score > max->score)max = head;head = head->next;if (head == NULL)break;}return(max);}void prn(struct NODE *p){printf("the max is:\n%d %s %c %g", p->num, p->name, p->sex, p->score);}void clear(struct NODE *head){NODE *next;  if (head == NULL){printf("clearList函数执行,链表为空\n");return;}while (head->next != NULL){next = head->next;free(head);head = next;}}int main(){NODE *p, *head;head = creat();//创建链表p = findmax(head);//查找成绩最好的学生prn(p);  //打印信息clear(head);//释放空间}

1 0
原创粉丝点击