关于c语言代码逻辑问题不懂

各位能帮我看看这段代码哪里出错了吗?就是能不能说一下哪里出了问题,求指导

img

img

img


#include <stdio.h>
#include <malloc.h> 
#define Max_Books 100
typedef int KeyType;  
typedef struct//书籍结构体 
{
    KeyType no;
    char bookname[50];
    char author[50];
    int  currentCount;
    int  totalCount;
}book;
typedef struct//图书馆结构体 
{
    book data[Max_Books];
    int count;
}Library; 
//初始化图书馆 
void initLibrary(Library *&L)
{
    L=(Library*)malloc(sizeof(Library));
    L->count=0;
}
//查找书籍索引
int findBookIndex(Library *L,KeyType no)
{
    int i;
    for(i=0;i<L->count;i++)
    {
        if(L->data[i].no==no)
            {
                return i;
            }
        else
            return -1;
    }
 } 
//采编入库
void addBook(Library *&L,KeyType no) 
{    book newbook;int i,j; 
    if(L->count+1>Max_Books)
    {    printf("图书馆已满,无法添加新的书籍!");
        return; 
    }
    i=findBookIndex(L,no);//在图书馆查找有无这本书籍 
    if(i==-1)//若图书馆没有这本书 
    {    j=L->count;    //j为图书馆新添加书籍所在的物理位序 
        L->data[j].no=no;
        printf("请输入书籍名称:");
        scanf("%s",L->data[j].bookname);
        printf("请输入作者名字:");
        scanf("%s",L->data[j].author);
        L->data[j].currentCount=1;
        L->data[j].totalCount=1;
    }
    L->data[j].currentCount++;//在图书馆找到该书籍,只需要现存量和库存量+1 
    L->data[j].totalCount++;
    L->count++;//最后图书馆藏书量+1 
    printf("%s已采编入库完成!",L->data[j].bookname);
} 
int main()
{
    Library *L;int n;KeyType no;
    initLibrary(L); 
    scanf("%d",&no);
    addBook(L,no);return  0;
}

把代码贴上来,图片看着累,也不便修改。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7565516
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:简易方式:自己写出来有价值的代码应用想出售使用权,但不想透露源代码如何做到?
  • 除此之外, 这篇博客: c语言三级指针中的 以下这段代码输出什么? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • char *c[] = { "ENTER","NEW","POINT","FIRST" };
    char **cp[] = { c + 3,c + 2,c + 1,c };
    char ***cpp = cp;
    
    	printf("%s\n", **++cpp);
    	printf("%s\n", *--*++cpp + 3);
    	printf("%s\n", *cpp[-2] + 3);
    	printf("%s\n",cpp[-1][-1]+1);
    	//	POINT
    	//	ER
    	//	ST
    	//	EW
    

    解析:如果用语言阐述的话,可能更加复杂,直接上图:
    在这里插入图片描述
    在这里插入图片描述
    这两张图是一位大神所绘(不是博主)非常直观易懂,特别铭谢!!!!
    这段代码主要考察二级,三级,指针和符号操作符,但是在写公司写项目的时候千万不敢这么写,否则…

  • 您还可以看一下 张云波老师的以太坊智能合约项目实战课程中的 代币发行和转账测试小节, 巩固相关知识点