gotes 2021-06-26 16: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 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值
  • ¥30 数据库软件的安装方法
  • ¥15 一道以太网数据传输题
  • ¥15 python 下载群辉文件
  • ¥50 代码还没怎么运行但是需要代码功能调用数据
  • ¥15 vue请求不到数据,返回状态200,数据为html
  • ¥15 用白鹭引擎开发棋牌游戏的前端为什么这么难找
  • ¥35 哪位专业人士知道这是什么原件吗?哪里可以买到?
  • ¥15 关于#c##的问题:treenode反序列化后获取不到上一节点和下一节点,Fullpath和Handle报错
  • ¥15 一部手机能否同时用不同的app进入不同的直播间?
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部