对应课本第316页,实测VS2017中可运行
//动态单向链表
#include<stdio.h>
#include<stdlib.h>
#define Len sizeof(struct student)struct student {int num;float score;struct student *next;
};int n;struct student *creat(void) {struct student *head ;struct student *p1, *p2;n = 0;p1 = p2 = (struct student *)malloc(Len);scanf_s("%ld,%f", &p1->num, &p1->score);head = NULL;while(p1->num != 0){n = n + 1;if (n == 1)head = p1;else {p2->next = p1;p2 = p1;p1 = (struct student *)malloc(Len);scanf_s("%ld,%f", &p1->num, &p1->score); }}p2->next = NULL;return(head);
}void print(struct student *head) {struct student *p;printf("\nNOW,These %d records are:\n", n-1);//程序结束时输入的字符不算一次p = head;if (head != NULL) {do {printf("%ld%5.1f\n", p->num, p->score);p = p->next;} while (p != NULL);}
}
int main() {printf("输入0,0结束程序\n");struct student *head;head = creat();print(head);system("pause");
}