c语言数据的删除与修改

#include<stdio.h>
#include<stdlib.h>
void Delect();
vod modify();
mian()
{
void Delect();
void Midify();
}
void Delect()
{   int k;
    char name[20];
    int i,j=0;
    start:
    printf(" 请输入要删除的电影名:");
    scanf("%s",name);
        while(strcmp(mov[i].name,name)!=0&&i<n)
        {
        i++;}
        if(i<n)
        {
        for(j=i;j<n-1;j++)
        {
        
            strcpy(mov[j+1].name,mov[j].name);
            
}
n--;
   printf("已删除电影信息!\n");}
   else
   {printf("查无此电影") ;
   }
   scanf("%d",&k);
   if(k)
   {goto start;
   }
}
void Modify()
{int i=0,j;
int k;
    char no[20],name[20],type[20],mfrs[20],dir[20],actor[20],state[20];
    int time;
     system("cls");
    FILE * fp;
    fp = fopen("movie.text", "a+");
    rewind(fp);
    while (!feof(fp))
    {
        fscanf(fp, "%s%s%s%s%s%s%d%s\n",&mov[i].no,&mov[i].name,&mov[i].type,&mov[i].mfrs,&mov[i].dir,&mov[i].actor,&mov[i].time,&mov[i].state);
        printf("%s\t%s\t%s\t%s\t%s\t%s\t%d\t%s\n", mov[i].no,mov[i].name,mov[i].type,mov[i].mfrs,mov[i].dir,mov[i].actor,mov[i].time,mov[i].state);
    }
    start :
    printf("请输入电影编号  :  ");
        scanf("%s",no);
        while(strcmp(mov[i].no,no)!=0&&i<n)
    {
            i++;}
            if(i<n)
    {
    
        

    printf("-------------------修改前的电影信息--------------------------------\n");
    printf("编号   电影名   电影类型   制造商   导演   主演   发行时间   国家\n");
    printf("-------------------------------------------------------------------\n");
    printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10d%-10s\n",mov[i].no,mov[i].name,mov[i].type,mov[i].mfrs,mov[i].dir,mov[i].actor,mov[i].time,mov[i].state);
    printf("开始修改\n");
    printf("输入电影编号:");
scanf("%s",&mov[n].no);
printf("输入电影名:");
scanf("%s",&mov[n].name);
printf("输入电影类型:");
scanf("%s",&mov[n].type);
printf("输入制造商:");
scanf("%s",&mov[n].mfrs);
printf("输入导演:");
scanf("%s",&mov[n].dir);
printf("输入主演:");
scanf("%s",&mov[n].actor);
printf("输入发行时间(单位:年):");
scanf("%d",&mov[n].time);
printf("输入国家:");
scanf("%s",&mov[n].state);
printf("-------------------修改后的电影信息--------------------------------\n");
    printf("编号   电影名   电影类型   制造商   导演   主演   发行时间   国家\n");
    printf("-------------------------------------------------------------------\n");
    printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10d%-10s\n",mov[i].no,mov[i].name,mov[i].type,mov[i].mfrs,mov[i].dir,mov[i].actor,mov[i].time,mov[i].state);
    }else
    {printf("查无此电影");
    }
     scanf("%d",&k);
      if(k)
   {goto start;
   }
}
删除和修改都有问题,该怎么改正。

修改你直接该数组成员的值就可以了,删除的话把被删除元素之后的所有元素都向前移动一位,然后数组大小减去1就可以了

你这问题也太笼统了,而且代码没有一点逻辑性,你保存的电影信息是一个一维结构数组,不是一个链表,所以删除只需要遍历数组把符合条件的元素置空就可以了,其他什么也不用改,修改就更简单了把元素结构改成要修改的就行了