课设选课系统,修改课程的代码哪里出错了,修改之后课程不会改变

void amend()
{
int num,i,flag=0;
char q;
do{
printf("请输入要修改的课程编号:");
scanf("%d",&num);
for(i=0;i<count;i++)
if(num==KC[i].num) flag=1;
if(flag==1) {

printf("请输入修改后的课程名称:");
     scanf("%s",KC[i].name);
 printf("请输入修改后课程性质:");
    scanf("%s",KC[i].xingzhi);
 printf("请输入修改后课程学时:");
    scanf("%d",&KC[i].xueshi);
 printf("输入修改后实验上机学时:");
    scanf("%d",&KC[i].shiyan_shangji);
 printf("请输入修改后课程学分:");
    scanf("%f",&KC[i].xuefen);
printf("请输入修改后开课学期:");
    scanf("%d",&KC[i].xueqi);
baocun();

printf("修改成功!请选择: 1--->继续修改; 其它键--->返回主菜单\n");
flag=0;
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:\n\n");
q=getch();
if(q!='1')menu();
else amend();
}
else
{
printf("无此课程!1--->重新输入;任意键--->返回主菜单\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("请输入:");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
q=getch();
if(q!='1')menu();
else amend();
} }while(flag==0);
}

代码不够完整,需要将baocun函数代码贴出来