gotes 2021-06-27 00:29 采纳率: 100%
浏览 27
已采纳

c语言的一个简单的电影售票系统,哪里错了?

c语言,总是有[Error] request for member 'name' in 'inf', which is of non-class type 'inf [10]'……类的错误,是哪里写错了?

#include<stdio.h>

#include<malloc.h> 

#include<string.h>

#include<conio.h>

#include<stdlib.h>

#include<time.h>

struct inf

{

char rate[20];

char name[20];

int time_hour;

int time_min;

int seat_amount;

int sell_amount; 

}inf[10];

char n[20];

int p;

struct tm*ptr;

void menu()//主菜单函数 

{

 printf("***********menu************\n");

 printf(" 1 买票\n\r");

 printf(" 2 退票\n\r");

 printf(" 3 满座率\n\r");

 printf(" 4 退出\n\r");

 printf("***************************\n");

}

void read()//输入信息函数 

{

 int i,re;

 FILE *fp;

 fp=fopen("movie_details.txt","r");

 if(fp==NULL)

 {

  printf("文件打开失败");

  exit(0); 

 }

 for(i=0;;++i)

 {

  re=fscanf(fp,"%s %s %d %d %d %d\n",inf[i].rate,inf[i].name,&inf[i].time_hour,&inf[i].time_min,&inf[i].sell_amount,&inf[i].seat_amount);

  if(re==EOF)

   break;

 }

 p=i;

 for(i=0;i<10;++i)

 {

  if(inf[i].rate=='\0')

  break; 

 }

 printf("读取成功\n");

 fclose(fp);

 }

 void remain()//信息保存 

 {

  int i;

  FILE *fp;

  fp=fopen("","w");

  if(fp==NULL)

  printf("文件打开失败");

  exit(0); 

  for(i=0;i<p;++i)

  {

   fprintf(fp,"%s %s %d %d %d %d\n",inf[i].rate,inf[i].name,&inf[i].time_hour,&inf[i].time_min,&inf[i].sell_amount,&inf.seat_amount);

  }

  printf("数据保存成功");

  fclose(fp); 

 }

 void time()

 {

  time_t it;

  it=time(NULL);

  ptr=localtime(&it);

  printf("现在的时间是%4d年%2d月%2d日%d:%d:%d\n",ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday,ptr->tm_hour,ptr->tm_min,ptr->tm_sec);

 }

 int minate(int q,int p)//将时间转化为分钟

 {

  int time_sum;

  time_sum=60*q+p;

  return time_sum;

 }

 void buy_ticket()

 {

  int i,a;

  char s[20];

  printf("请输入你想要观看的电影:\n");

  printf("请输入您想观看的电影名称");

  scanf("%s",s);

  for(i=0;i<p;++i)

  {

   if(strcmp(inf.name,s)==0)

   {

    printf("你想看的电影信息如下:\n");

    printf("%s%s %d:%d %d%d\n",inf[i].name,inf[i].rate,&inf[10].time_hour,&inf[i].time_min,&inf[i].sell_amount,&inf[i].seat_amount);

   }

   if(minate(inf[i].time_hour,inf[i].time_min)>minate(ptr->tm_hour,ptr->tm_min))

   {

    printf("请输入您的购买票数:");

    scanf("%d",&a);

    inf[i].seat_amount-=a;

    inf[i].sell_amount+=a;

   }

  

  • 写回答

1条回答 默认 最新

  • 关注

     request for member 'name' in 'inf', which is of non-class type 'inf [10]

    报这个错误是因为int[10]越界了,下标只能是0~9,

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效