|
10鱼币
代码如下:
- /*链表练习*/
- #include <stdio.h>
- #include <stdlib.h> //提供malloc()原型
- #include <string.h> //提供strcpy()原型
- #define TSIZE 45
- struct film
- {
- char title[TSIZE];
- int rating;
- film *next;
- }; //忘记这个分号会死的很惨
- int main()
- {
- struct film *head;
- struct film *prev, *current;
- char input[TSIZE];
-
- puts("Enter first movie title: ");
- while(gets(input) != NULL && input[0] != '\0')
- {
- current = (struct film*)malloc(sizeof(struct film));
- if(head == NULL)
- head = current;
- else
- prev->next = current;
- current->next = NULL;
- strcpy(current->title, input);
- puts("Enter your rating <0~10>: ");
- scanf("%d", ¤t->rating);
- while(getchar() != '\n')
- continue;
- puts("Enter next movie title (empty line to stop): ");
- prev = current;
- }
-
- /*给出电影列表*/
-
- if(head == NULL)
- printf("No data entered");
- else
- printf("Here is the movie list: \n");
- current = head;
- while(current != NULL)
- {
- printf("Movie: %s Rating: %d\n", current->title, current->rating);
- current = current->next;
- }
-
- /*任务已完成,因此释放所分配的内存*/
-
- current = head;
- while(current != NULL)
- {
- free(current);
- current = current->next;
- }
-
- printf("BYE BYE");
-
- return 0;
- }
复制代码
没发现逻辑上有什么问题,但是最后链表无法正常输出,求大神解答,不胜感激.
|
|