请问void modify1 执行时为什么会直接跳出程序?

#include<string.h>
#include<stdlib.h>
#define N 30    //最多颜色个数
void menu();
int  n ;
struct fourband     //四环电阻结构体
{
    char color[20];//颜色
    int  first; //第一环
    int  second;    // 第二环
    int  third;//倍数
    char  fourth[20];   //允许误差/(%)

}fourband[N];               //四环电阻结构体数组

struct fiveband     //五环电阻结构体
{
    char color[20];//颜色
    int  first; //第一环
    int  second;// 第二环
    int  third;//第三环
   int  fourth;//乘倍数
    char  fifth[20];    //允许误差/(%)
}fiveband[N];               //五环电阻结构体



void entry1()//录入功能(四环电阻)
{
   int i,n=13;
    FILE* fp;//定义
    fp = fopen("d:\\band.txt", "w");//打开
    if (fp == NULL)
    {
        printf("file can not find!\n");
        exit(0);
    }
    for (i = 0; i < n; i++)
    {printf("第%i个颜色\n", i + 1);
        printf("请输入色环颜色:\n");
        scanf("%s", fourband[i].color);
        printf("请输入第一环数字:\n");
        scanf("%i", &fourband[i].first);
        printf("请输入第二环数字:\n");
        scanf("%i", &fourband[i].second);
        printf("请输入乘倍数(10的几次幂):\n");
        scanf("%i", &fourband[i].third);
        printf("请输入允许误差/(%%):\n");
        scanf("%s", fourband[i].fourth);
   fwrite(&fourband[i], sizeof(fourband[i]), 1, fp);
    }
    fclose(fp);
}
void entry2()//录入功能(五环电阻)
{
    int i,n=12;
    FILE* fp;//定义
    fp = fopen("d:\\band.txt", "w");//打开
    if (fp == NULL)
    {
        printf("file can not find!\n");
        exit(0);
    }
    for (i = 0; i < n; i++)
    {
        printf("第%i个颜色\n", i + 1);
        printf("请输入色环颜色:\n");
        scanf("%s", fiveband[i].color);
        printf("请输入第一环数字:\n");
        scanf("%i", &fiveband[i].first);
        printf("请输入第二环数字:\n");
        scanf("%i", &fiveband[i].second);
        printf("请输入第三环数字:\n");
        scanf("%i", &fiveband[i].third);
        printf("请输入乘倍数(10的几次幂):\n");
        scanf("%i", &fiveband[i].fourth);
        printf("请输入允许误差/(%%):\n");
        scanf("%s", fiveband[i].fifth);

  fwrite(&fiveband[i], sizeof(fiveband[i]), 1, fp);}

    fclose(fp);
}
void entry()
{
    int sel;
    for (;;)
    {
        printf("****录入功能****\n\n\n");
        printf("****1.四环电阻录入****\n");
        printf("****2.五环电阻录入****\n");
        printf("****0.返回主菜单  ****\n");
        printf("\n\n请选择:");
        scanf("%i", &sel);
        switch (sel)
        {
        case 1:entry1(); break;
        case 2:entry2(); break;
        case 0:menu(); break;
        default: printf("input error\n");
        }
        printf("\n按任意键继续!!\n");
        system("pause");
    }
}

void browse1()//浏览四环电阻
{
    int i,n=13;
    FILE* fp;//定义
    fp = fopen("d:\\band.txt", "r");//打开
    if (fp == NULL)
    {
        printf("file can not find!\n");
        exit(0);
    }
    printf("色环颜色    第一环       第二环       乘倍数       允许偏差/(%%)\n");
    printf("===========================================================================\n");
    for (i = 0; i < n; i++)
        printf("%s      %i      %i      10^%i       %s      \n", fourband[i].color, fourband[i].first, fourband[i].second, fourband[i].third, fourband[i].fourth);
 fread(&fourband[i], sizeof(fourband[i]), 1, fp);
fclose(fp);
}
void browse2()//浏览五环电阻
{
    int i,n=12;
    FILE* fp;//定义
    fp = fopen("d:\\band.txt", "r");//打开
    if (fp == NULL)
    {
        printf("file can not find!\n");
        exit(0);
    }
    printf("色环颜色    第一环       第二环       第三环       乘倍数       允许偏差/(%%)\n");
    printf("=====================================================================================\n");
    for (i = 0; i < n; i++)
        printf("%s      %i      %i      %i      10^%i       %s      \n", fiveband[i].color, fiveband[i].first, fiveband[i].second, fiveband[i].third, fiveband[i].fourth, fiveband[i].fifth);
fread(&fiveband[i], sizeof(fiveband[i]), 1, fp);
fclose(fp);
}
void browse()
{
    int sel;
    for (;;)
    {
        printf("****浏览功能****\n\n\n");
        printf("****1.四环电阻浏览****\n");
        printf("****2.五环电阻浏览****\n");
        printf("****0.返回主菜单  ****\n");
        printf("\n\n请选择:");
        scanf("%i", &sel);
        switch (sel)
        {
        case 1:browse1(); break;
        case 2:browse2(); break;
        case 0:menu(); break;
        default: printf("input error\n");
        }
        printf("\n按任意键继续!!\n");
        system("pause");
    }
}
void seek1() //按四环电阻查找
{ int i=0,n=13;
char s1[100];
  int find=0;
  FILE* fp;//1.定义文件
  fp=fopen("d:\\band.txt", "r");//2.打开文件
  if(fp==NULL)
  {printf("file can not open!\n");
  exit(0);}
  while(fread(&fourband[i], sizeof(fourband[i]), 1, fp)!=0)
  i++;
  n=i;

   printf("请输入要查找的颜色: ");
  scanf("%s",s1);
  for(i=0;i<n;i++)
  if(strcmp(s1,fourband[i].color)==0)
  {printf("find\n");find=1;
        printf("第%i个颜色\n", i + 1);
        printf("\t请输入色环颜色:");
        printf("%s\n", fourband[i].color);
        printf("\t该颜色第一环数字:");
        printf("%i\n", fourband[i].first);
        printf("\t该颜色第二环数字:");
        printf("%i\n", fourband[i].second);
        printf("\t该颜色乘倍数(10的几次幂):");
        printf("%i\n", fourband[i].third);
        printf("\t该颜色允许误差/(%%):");
        printf("%s\n", fourband[i].fourth);
        break;}

  if(find==0) printf("unfind\n");

  fclose(fp);//4.关闭文件
}
void seek2() //按颜色查找
{ int i=0,n=12;
char s1[100];
  int find=0;
 FILE *fp;//1.定义文件
  fp=fopen("d:\\band.txt", "r");//2.打开文件
  if(fp==NULL)
 {printf("file can not open\n");
  exit(0);}
 while (fread(&fiveband[i], sizeof(fiveband[i]), 1, fp)!=0)
 i++;
 n=i; 

 printf("请输入要查找的颜色: ");
  scanf("%s",s1);
  for(i=0;i<=n;i++)
   if(strcmp(s1,fiveband[i].color)==0)
   {printf("find\n");find=1;
      printf("第%i个颜色\n", i + 1);
        printf("\t请输入色环颜色:");
        scanf("%s\n", fourband[i].color);
        printf("\t该颜色第一环数字:");
        scanf("%i\n", &fiveband[i].first);
        printf("\t该颜色第二环数字:");
        scanf("%i\n", &fiveband[i].second);
        printf("\t该颜色第三环数字:");
        scanf("%i\n", &fiveband[i].third);
        printf("\t该颜色乘倍数(10的几次幂):");
        scanf("%i\n", &fiveband[i].fourth);
        printf("\t该颜色允许误差/(%%):");
        scanf("%s\n", fiveband[i].fifth);
        break;}

   if(find==0) printf("unfind\n");
fclose(fp);

}//4.关闭文件
void seek()
{
    int sel;
    for (;;)
    {
        printf("****查询功能****\n\n\n");
        printf("****1.四环电阻查询****\n");
        printf("****2.五环电阻查询****\n");
        printf("****0.返回主菜单  ****\n");
        printf("\n\n请选择:");
        scanf("%i", &sel);
        switch (sel)
        {
        case 1:seek1(); break;
        case 2:seek2(); break;
        case 0:menu(); break;
        default: printf("input error\n");
        }
        printf("\n按任意键继续!!\n");
        system("pause");
    }
}
void modify1() //修改
{ int i,n=13;
char s1[100];
  int find=0;
  FILE *fp;//1.定义文件
  fp=fopen("d:\\band.txt", "r");//2.打开文件
  if(fp==NULL)
{printf("file can not open\n");
  exit(0);}
  while(fread(&fourband[i], sizeof(fourband[i]), 1, fp)!=0)
  i++;
  n=i;
  fp=fopen("d:\\band.txt","w");
  if(fp==NULL)
{printf("file can not open\n");
  exit(0);}

    printf("\t请输入要修改的颜色: ");
    scanf("%s",s1);
    for(i=0;i<n;i++)
    if(strcmp(s1,fourband[i].color)==0)
   {printf("find\n");find=1;
        printf("请输入新的第一环数字:\n");
        scanf("%i", &fourband[i].first);
        printf("请输入新的第二环数字:\n");
        scanf("%i", &fourband[i].second);
        printf("请输入新的乘倍数(10的几次幂):\n");
        scanf("%i", &fourband[i].third);
        printf("请输入新的允许误差/(%%):\n");
        scanf("%s",fourband[i].fourth);
        printf("第%i个颜色\n", i + 1);
        printf("\t请输入色环颜色:");
        printf("%s\n", fourband[i].color);
        printf("\t该颜色第一环数字:");
        printf("%i\n", fourband[i].first);
        printf("\t该颜色第二环数字:");
        printf("%i\n", fourband[i].second);
        printf("\t该颜色乘倍数(10的几次幂):");
        printf("%i\n", fourband[i].third);
        printf("\t该颜色允许误差/(%%):");
        printf("%s\n", fourband[i].fourth);break;

 }
  else
      continue;
  if(find==0) 
      printf("unfind\n");
  fwrite(&fourband[i], sizeof(fourband[i]), 1, fp);
  fclose(fp);//4.关闭文件
}
void modify2() //修改
{ int i,n=12;
  char  s1[100];
  int find=0;
  FILE* fp;//1.定义文件
  fp=fopen("d:\\band.txt", "r");//2.打开文件
  if(fp==NULL)
 {printf("file can not open\n");
  exit(0);}
  while(fread(&fiveband[i], sizeof(fiveband[i]), 1, fp)!=0)
  i++;
  n=i;
  fclose(fp);
  fp=fopen("d:\\band.txt","w");
  if(fp==NULL)
{printf("file can not open\n");
  exit(0);}

   printf("请输入要修改的颜色: ");
  scanf("%s",s1);
  for(i=0;i<n;i++)
if(strcmp(s1,fiveband[i].color)==0)
   {printf("find\n");find=1;
    printf("请输入新的第一环数字:\n");
        scanf("%i", &fiveband[i].first);
        printf("请输入新的第二环数字:\n");
        scanf("%i", &fiveband[i].second);
        printf("请输入新的第三环数字:\n");
        scanf("%i", &fiveband[i].third);
        printf("请输入新的乘倍数(10的几次幂):\n");
        scanf("%i", &fiveband[i].fourth);
        printf("请输入新的允许误差/(%%):\n");
        scanf("%s", fiveband[i].fifth);
        printf("第%i个颜色\n", i + 1);
        printf("\t请输入色环颜色:");
        scanf("%s\n", fourband[i].color);
        printf("\t该颜色第一环数字:");
        scanf("%i\n", &fiveband[i].first);
        printf("\t该颜色第二环数字:");
        scanf("%i\n", &fiveband[i].second);
        printf("\t该颜色第三环数字:");
        scanf("%i\n", &fiveband[i].third);
        printf("\t该颜色乘倍数(10的几次幂):");
        scanf("%i\n", &fiveband[i].fourth);
        printf("\t该颜色允许误差/(%%):");
        scanf("%s\n", fiveband[i].fifth);break;}

  else
      continue;
  if(find==0) 
      printf("unfind\n");
  fwrite(&fiveband[i], sizeof(fiveband[i]), 1, fp);
  fclose(fp);//4.关闭文件
}
void modify()
{
    int sel;
    for (;;)
    {
        printf("****修改功能****\n\n\n");
        printf("****1.四环电阻修改****\n");
        printf("****2.五环电阻修改****\n");
        printf("****0.返回主菜单  ****\n");
        printf("\n\n请选择:");
        scanf("%i", &sel);
        switch (sel)
        {
        case 1:modify1(); break;
        case 2:modify2(); break;
        case 0:menu(); break;
        default: printf("input error\n");
        }
        printf("\n按任意键继续!!\n");
        system("pause");
    }
}
void menu()
{
    int sel;
    for (;;)
    {
        printf("****总****\n\n\n");
        printf("****1.录入功能****\n");
        printf("****2.浏览功能****\n");
        printf("****3.查询功能****\n");
        printf("****4.修改功能****\n");
        printf("****0.返回主菜单  ****\n");
        printf("\n\n请选择:");
        scanf("%i", &sel);
        switch (sel)
        {
        case 1:entry(); break;
        case 2:browse(); break;
        case 3:seek(); break;
        case 4:modify(); break;
        case 0:exit(0); break;
        default: printf("input error\n");
        }
        printf("\n按任意键继续!!\n");
        system("pause");
    }
}

int main(void)
{
    menu();
    return 0;
}


https://zhidao.baidu.com/question/226191285.html