电影存储·结构

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define tsize 45
struct film{
    char title[tsize];
    int rating;
    struct film * next;
};
char *s_gets(char *st,int n);
int main(void)
{
  struct film *head=NULL;
  struct film *prev,*current;
  char input[tsize];
  puts("Enter first movie title:");
  while(s_gets(input,tsize)!=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",&current->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!\n");
return 0;
}
char * s_gets(char *st,int n)
{
    char *ret_val;
    char *find;
    ret_val=fgets(st,n,stdin);
        if(ret_val)
        {
            find=strchr(st,'\n');
            if(find)
                *find='\0';
            else
                while(getchar()!='\n')
                    continue;
        }
        return ret_val;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值