c语言 删除模块

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:22:02
/*删除模块*/
del_message()
{int i,j,num,flag;
char c;
do
{system("cls");
printf("\n\n 请输入要删除的编号:");
scanf("%d",&num);
for(i=0;i<sum;i++)
if(message[i].num==num)
{for(j=i;j<sum;j++)
message[j]=message[j+1];
sum=i-1;
break;
}
if(i==sum)
{
printf("\n 没有信息!");
getchar();
}
printf("\n\n 继续?(Y/N)");
c=getch();
if(c=='y'||c=='Y')
{
flag=1;
printf("\n 继续!\n");
}
else flag=0;
}while(flag==1);
printf("\n\n 按任意键返回!");
getchar();
}

这个模块继续删除无效。只删除掉第1次的数据。点继续后删除的信息并没有实际删除掉。
还有就是运行删除模块后运行修改模块会提示无信息(全部都被删掉了。。实际只删除了1条资料。。)

for(i=0;i<sum;i++)
{
  if(message[i].num==num)
  {
    for(j=i;j<sum;j++)
    {
      message[j]=message[j+1];
    }
  }
  //sum = i-1; //如果你从第一个删除,i=0,sum=-1
  sum -= 1; //总数减一
  break;
}

sum=i-1;
变成sum=sum-1;