结构体变量前的预期表达错误

#include<stdio.h>
#include<math.h>
#include<string.h>
#define max 30
#include<stdlib.h>
typedef struct flight
{
    char station;
    int number;
    char time;
}flight[max];
int i;//航班数
int n;//航班号 
void usermenu()
{
printf("********************航班订票系统********************");
printf("*                                                *\n");
printf("*         欢迎您,                               *\n");
printf("*                                                *\n");
printf("*               请选择您要办理的业务             *\n");
printf("*               1. 列出所有航班                    *\n");
printf("*               2. 查询航班余票                    *\n");
printf("*               3. 订        票                    *\n");
printf("*               4. 退        票                    *\n");
printf("*               5. 列出我的订单                    *\n");
printf("*               6. 退        出                    *\n");
printf("****************************************************\n");
printf("请选择操作:\n");
}
 void writein()
{
    FILE *fp = fopen("flight.txt", "rb");
    if (fp == NULL) {
        printf("open file failed!\n");
        exit(0);
    }
    int a;
    printf("请输入需录入的航班数");
    scanf("%d\n",i) ;
    for(a=0;a<i;a++)
    {
        printf("请输入终点站\n");
        scanf("%s",&flight[a].station);
        printf("请输入票数\n");
        scanf("%d",&flight[a].number);
        printf("请输入起飞时间\n"); 
        scanf("%s",&flight[a].time);
        fprintf(fp,flight[a].station,flight[a].number,flight[a].time);
  }
  fclose(fp);

} 
  
int main()
{
/*    if(start()==1)
    {
        user();
    }
    else
    adminer();*/
//    printall();
    writein();
    return 0;
    
}

结果显示flight前的预期表达错误,应该怎么改正

img

输入 %d 后面的 换行符去掉
%d 输入的变量 ,要加上 取地址 &
修改如下:

#include<stdio.h>
#include<math.h>
#include<string.h>
#define max 30
#include<stdlib.h>
typedef struct flight
{
    char station[100];
    int number;
    char time[20];
}ft;
ft f[max];
int i;//航班数
int n;//航班号 
void usermenu()
{
printf("********************航班订票系统********************");
printf("*                                                *\n");
printf("*         欢迎您,                               *\n");
printf("*                                                *\n");
printf("*               请选择您要办理的业务             *\n");
printf("*               1. 列出所有航班                    *\n");
printf("*               2. 查询航班余票                    *\n");
printf("*               3. 订        票                    *\n");
printf("*               4. 退        票                    *\n");
printf("*               5. 列出我的订单                    *\n");
printf("*               6. 退        出                    *\n");
printf("****************************************************\n");
printf("请选择操作:\n");
}
 void writein()
{
    FILE *fp = fopen("flight.txt", "w");
    if (fp == NULL) {
        printf("open file failed!\n");
        exit(0);
    }
    int a;
    printf("请输入需录入的航班数: ");
    scanf("%d", &i);
    getchar();
    for(a=0;a<i;a++)
    {
        printf("请输入终点站\n");
        scanf("%s",f[a].station);
        getchar();
        printf("请输入票数\n");
        scanf("%d",&f[a].number);
        printf("请输入起飞时间\n");
        scanf("%s",f[a].time);
        getchar();
        fprintf(fp,"%s %d %s", f[a].station,f[a].number,f[a].time);
  }
  fclose(fp);
 
} 
  
int main()
{
/*    if(start()==1)
    {
        user();
    }
    else
    adminer();*/
//    printall();
    writein();
    return 0;
    
}