各位能帮我看看这段代码哪里出错了吗?就是能不能说一下哪里出了问题,求指导
#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;
}
把代码贴上来,图片看着累,也不便修改。
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
解析:如果用语言阐述的话,可能更加复杂,直接上图:
这两张图是一位大神所绘(不是博主)非常直观易懂,特别铭谢!!!!
这段代码主要考察二级,三级,指针和符号操作符,但是在写公司写项目的时候千万不敢这么写,否则…