c语言程序设计帮忙修改一下谢谢 20

该子程序是删除一条已存在的图书信息,现情况为:输入不存在书名提示“未找到待删除记录”,输入存在书名会显示该图书信息并提示输入待删图书编号,此时输入存在的编号一切正常,求修... 该子程序是删除一条已存在的图书信息,现情况为:输入不存在书名提示“未找到待删除记录”,输入存在书名会显示该图书信息并提示输入待删图书编号,此时输入存在的编号一切正常,求修改!!!要求输入不存在编号时提示“未找到待删除记录”,谢谢

int delet(Bookinfo dictList[],int n,char *ISBN) //只删除书号为ISBN的第一条记录
{
int i,j;
for(i=0;i<n;i++)
{
if(!strcmp(dictList[i].ISBN,ISBN)) //strcmp()函数判断两个字符串是否相等
{
for(j=i;j<n-1;j++)
dictList[j]=dictList[j+1]; //将目标值右面的数据全部左移一位
return(n-1);//删除后记录数减少1
}
}
return(n);
}
int Delete_a_record(Bookinfo dictList[],int n)//删除某一条记录
{
int i,j=0;
char book[30],isbn[10],s,c;
c=getchar();
printf("请输入待删除的书目的书名\n");
gets(book); //获取书名字符串
printf("%-10s%-23s%-18s%-8s%-15s%-4s\n","ISBN","book","author","edition","press","year");
for(i=0;i<n;i++)
{
if(!strcmp(dictList[i].book,book))
{ //找到同名的数据,并输出
printf("%-10s%-23s%-18s%-8d%-15s%-4d\n",dictList[i].ISBN,dictList[i].book,dictList[i].author,dictList[i].edition,dictList[i].press,dictList[i].year);

j++;
}
}
if(j==0) printf("未找到待删除记录\n");
else
{
printf("请输入待删除的书目的书号\n");
gets(isbn); //获取要删除的数据的书号
printf("确实要删除该记录?是(y)|否(n)\n"); //提示删除
if((s=getchar())=='y')
{
for(i=0;i<n;i++)
{
if(!strcmp(dictList[i].ISBN,isbn))
{
//调用delet函数删除
printf("删除成功!\n");
return(delet(dictList,n,dictList[i].ISBN));
}
}
}
}
return(n);
展开
 我来答
匿名用户
2017-05-11
展开全部
问题也很好解决;
1、问题描述:按你所述内容,是想在找到相同书名后(可能有很多本,但ISBN号各不相同),你想按"ISBN" 号删除,如果输入的ISBN号在找到的所有同名书中存在,则删除该ISBN号所对应的书本信息,若不存在,则提示未找到相应的ISBN信息。
2、算法分析:在找到若干同名书之后,把所有找到书目放入一个数组F,数组的长度为你所写程序中变量"j"的值,即 Bookinfo F[j];然后在输入要删除的ISBN号后,只需在数组F中查找对应的ISBN号即可。
3、源代码参考:
Bookinfo F[j];//定义数组
 for(i=0;i<n;i++)
 {
  if(!strcmp(dictList[i].book,book))
  { //找到同名的数据,并输出
   printf("%-10s%-23s%-18s%-8d%-15s%-4d\n",dictList[i].ISBN,dictList[i].book,dictList[i].author,dictList[i].edition,dictList[i].press,dictList[i].year);
   F[j++] = dictList[i];//把找到的同名书目放入F数组
  }
 }
 if(j==0) 
  printf("未找到待删除记录\n");
 else
 {
  printf("请输入待删除的书目的书号\n");
  gets(isbn); //获取要删除的数据的书号
  
  //在F中查找ISBN
  //楼主自己写代码哦,很简单
  //
  if(找到)
  {
  printf("确实要删除该记录?是(y)|否(n)\n"); //提示删除
  if((s=getchar())=='y')
  {
   for(i=0;i<n;i++)
   {
    if(!strcmp(dictList[i].ISBN,isbn))
    {
     //调用delet函数删除
     printf("删除成功!\n");
     return(delet(dictList,n,dictList[i].ISBN));
    }
   }
  } 
  }
  else(没找到)
  {
  //自己添加代码
  }
黑戒惨i
2017-05-09 · TA获得超过196个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:53.4万
展开全部
这点财富值不太想写,你自己写一下,我帮你修改一下吧
追问
我已经写了呀,在问题补充里,您帮忙改一下吧,谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式