DVD影片系统,谁能告诉我有什么错吗

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct a{
char num;//影片编号
 char name[100]; //影片名
 char space;//影片地区类型
 char content;//影片内容
double price;//价格
 char date; //日期
    
 struct a* next;
}DVD,*List;

List head=NULL;

int  Login();    // 登陆
void Menu();      //   主菜单
int Choose();    //  选择功能
void Creathead(); // 创建头结点
void DisplayAll();  //  显示所有影片
void Delete();     //  删除影片
void DeleteAll();   // 删除所有
void Modify();     //  修改影片数据
void Search();      //  查找影片
void Sort();      // 排序
void Changedata(List p);   // 排序中的数据交换
void Save();       //  保存
int main()
{
 if(Login()==0) return 0;
  Reload();
 while (1)
 {
  Menu();
  switch (Choose())
  {
  case 1:
   Create(); break;
  case 2:
   Delete(); break;
  case 3:
      Search();break; 
  case 4:
   Modify(); break;
  case 6:
   DisplayAll(); break;
  case 5:
   DeleteAll(); break;
  case 7:
   Sort(); break;
  case 8:
   Save(); break;
  case 0:
    return 0;
  }
 }
}

int Login()
{
 while (1)
printf(".......................\n");
printf("DVD影片管理系统\n");
printf("\t1.新增影片\n");
printf("\t2.影片浏览\n");
printf("\t3.影片删除\n");
printf("\t4.影片修改\n");
printf("\t5.影片排序\n");
printf("\t6.影片查询\n");
printf("\t7.影片统计\n");
printf(".......................\n");
 }   int choose;
  char fusername[100], fpassword[100];
  char username[100], password[100];
  scanf("%d", &choose);
  if ('choose' == 1)
  {
   FILE* f1 = fopen("DVD.txt", "r");

   while ((c = getch()) != '\r')
   {
    if (c == '\b')
    {
     i--;
     putchar('\b');
     putchar(' ');
     putchar('\b');
    }
    else
    {
     password[i] = c;
     i++;
     putchar('*');
    }
   }
   printf("\n");
   password[i] = '\0';
   fscanf(f1, "%s %s", fusername, fpassword);
   if ((strcmp(fusername, username) == 0) && (strcmp(fpassword, password)) == 0)
   {
    getch();
    system("cls");
}

void Menu()
{
printf(".......................\n");
printf("DVD影片管理系统\n");
printf("\t1.新增影片\n");
printf("\t2.影片浏览\n");
printf("\t3.影片删除\n");
printf("\t4.影片修改\n");
printf("\t5.影片排序\n");
printf("\t6.影片查询\n");
printf("\t7.影片统计\n");
printf(".......................\n")
}

int Choose(){
 int n;
 printf("请输入序号:");
 while (scanf("%d", &n) != 1 || n < 0 || n>8)
 {
  printf("请重新输入:");
  scanf("%d", &n);
 }
 return n;
}

void Reload()
{
 int number,name,space,content,price,date;
char number;
 char name[100];
char space[100];
char content[100];
double price;
 char date[100][100][100];
 List b=head;
 FILE* p = fopen("data.txt", "a+");
 while (fscanf(p, "%d%s%s%s%lf%d",&number,name,&space,&content,&price,&date) == 6)
 {
  
  List a = (List)malloc(sizeof(DVD));
  b->next=a;  

  a->number= number;
  a->name =name;
  a->space = space;
  a->content= content;
  a->price=price;
  strcpy(a->name, name);
  
  int i; 
  for(i=0;i<number;i++)
  {
   fscanf(p,"%s",date[i]);
   strcpy(a->date[i], date[i]);
  }

  b = b->next;
  ++;
 }
 if(number!=0)
 b->next = NULL;
 printf("成功载入%d条信息\n\n", number);
 fclose(p);
}

void Creathead()
{
 List a=(List)malloc(sizeof(DVD));

 a->number = 0;
 a->name = 0;
 a->space= 0;
 a->content = 0;
 a->price = 0;
 strcpy(a->number, "0");
// strcpy(a->date, "0");
 a->next=NULL;
 head=a; 
}

 

void Creat()
{
 List a = (List)malloc(sizeof(DVD));

 printf(" 请输入影片编号: ");
 scanf("%s", a->number);
 printf("请输入影片名称: ");
 scanf("%s",&a->name);
 printf("请输入地区类型:");
 scanf("%s", &a->space);
 printf("请输入内容:  ");
 scanf("%d", &a->content);
 printf("请输入价格:  ");
 scanf("%lf", &a->price);
 
 printf("请输入日期:  ");
 scanf("%d", &a->date);

 int i;
 for(i=0;i< a->number;i++)
  scanf("%s", a->timeline[i]);

 a->next = NULL;
 List b = head;
 while (b->next != NULL)
  b = b->next;
 b->next = a;
 system("cls");
 printf("添加成功\n\n");
}

void Search()
{
 int flag = 1;
 List a,b;
 a=b = head->next;
 char name[100];
    printf("输入要查找的影片名:");
    scanf("%s", name);
 printf("\n");
 while(strcmp(a->name,name))
 {
  b=a;
  a=b->next;
  if (a== NULL)
  {
   printf("查找失败\n\n");
   flag = 0;
   break; 
  }
 } 
    if(flag)
 {
 printf("影片编号\t\t影片名称\t\t地区类型\t\t内容类型\t\t价格\t\出版日期\t\\n");
 printf("---------------------------------------------------------");
 printf("---------------------------------------------------\n");

 printf("%d\t%s\t\t%s\t\t%s\t\t%d\t\t%s\t\t\n",-10,a->number,a->name,a->space,a->content,a->price,a->date);
 int i;
 for(i=1;i<a->number;i++)
  printf("\t\t\t\t\t\t\t\t\t\t\t\t[%d]%s\n",i+1,a->date[i]);
 printf("\n");
    }
 printf("\n\n");
 getchar();
 getchar();
 system("cls");
}

void Delete()
{
 char choose;
 char name[100];
 List

fscanf(p, "%d%s%s%s%lf%d",&number,name,&space,&content,&price,&date) 

fscanf(p, "%d%s%s%s%lf%d",&number,name,space,content,&price,&date) 

scanf("%s", &a->space)-----scanf("%s", a->space)

scanf("%s", a->number); ----scanf("%d", &a->number); 

scanf("%s",&a->name); ----scanf("%s",a->name); 

可以说你是乱写了一气啊

总结成一点,记住了:格式化字符串的都不需要加&符,是整型的不能用%s。其它的类似错误你自己改吧

能不能麻烦你把代码按照格式整理一下,这样阅读性太差