| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 596 人关注过本帖
标题:无错误,运行时停止工作
只看楼主 加入收藏
陌路同途
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-1-19
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
无错误,运行时停止工作
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
    char name[40];
    char author[40];
    char place[40];
}Book;

Book * book=NULL;
int current=0;
int total=100;

void insert()
{
    if(current>total)
    {
        printf("当前存储空间不足,请输入图书量以分配图书空间\n");
        printf("PS:当前图书空间为%d",total);
        scanf("%d",&total);
        printf("修改成功,当前空间为%d",total);
    }
    printf("请输入图书名字");
    scanf("%s",&book[current].name);
    printf("请输入图书作者");
    scanf("%s",&book[current].author);
    printf("请输入图书出版社");
    scanf("%s",&book[current].place);
    current++;
}
void query()
{
    char *word;
    printf("请输入搜索关键字");
    int hasfound = 0;
    scanf("%s",word);
    int i;
    char *s;
    for(i=0;i<current;i++)
    {
        s=strstr(book[i].name,word);
        if(s == NULL)
        {
        s=strstr(book[i].author,word);
        if(s == NULL)
            {
            s=strstr(book[i].place,word);
            if(s != NULL)
            printf("%s,%s,%s",book[i].name,book[i].author,book[i].place);
            hasfound=1;
            }
        printf("%s,%s,%s",book[i].name,book[i].author,book[i].place);
        hasfound=1;

        }
    printf("%s,%s,%s",book[i].name,book[i].author,book[i].place);
    hasfound=1;
    }
    if(hasfound=0)
        printf("不存在");
}


void del()
{

    int hasfound = 0;
    int i;
    printf("请输入要删除的书名:");
     char name[40];
    scanf("%s", name);


    for (i=0; i<current; i++)
    {
        if (strcmp(book[i].name, name) == 0)
        {
            hasfound = 1;
            memmove(&book[i], &book[i+1], (current-1-i)*sizeof(Book));
            printf("删除成功\n");
            current--;
            //return ; //0;
        }
    }
    if(hasfound == 0)
        printf("该书不存在\n");
}

int main()
{
   char choice;
   printf("                   程序功能\n");
        printf("                1:录入图书信息\n");
        printf("                2:查询图书信息\n");
        printf("                3:修改图书信息\n");
        printf("请选择:");
        choice=getchar();
    switch(choice)
    {
       case '1':
       insert();
       break;

       case '2':
       query();
       break;

       case '3':
       del();
       break;

       default:
       printf("请不要调皮-_-");
       return 0;
    }
         return 0;
}
2016-01-19 22:30
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:20 
就这样?菜单不单独提取作为函数反复使用?只打算输入一个图书信息就退出?先指出你的程序中断的错误吧:没有申请空间,下面的红色代码是在你main函数里添加的,加上后就可输入一个图书信息,其他的你自己去完善把。
.
.
.
int main()
{
    book=(Book*)malloc(100*sizeof(Book));
   char choice;
   printf("                   程序功能\n");
        printf("                1:录入图书信息\n");
.
.
.

能编个毛线衣吗?
2016-01-19 23:21
快速回复:无错误,运行时停止工作
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020785 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved