Book bookList[MAX_BOOKS]={ {"1","唐诗三百首","孙洙","南京大学出版社",1}, {"2","三体","刘慈欢","北美权威科幻类出版社",1}, {"3","稻草人","叶圣陶","湖南儿童出版社",1}, {"4","老人与海","海明威","上海译文出版社",1}, {"5","c语言","泰戈尔","浙江文艺出版社",1}}; 怎么让这些相对应的元素每行每列对齐
时间: 2023-07-19 20:51:01 浏览: 90
你可以使用 printf 函数和格式化字符串来实现每行每列对齐的效果。下面是一个例子:
```
for(int i=0; i<MAX_BOOKS; i++){
printf("%-5s%-15s%-10s%-25s%d\n",
bookList[i].id, bookList[i].name, bookList[i].author,
bookList[i].publisher, bookList[i].status);
}
```
上面的代码中,%-5s 表示左对齐并占位 5 个字符的字符串,%-15s 表示左对齐并占位 15 个字符的字符串,依此类推。你可以根据需要调整每个元素的占位长度,使得每列对齐。
相关问题
typedef struct { char id[30]; char name[30]; //书名 char author[30]; //作者 char press[30]; //出版社名 int available;//1表示未借出,0表示已借出 }Book; int numbooks=5,user_num=0; Book bookList[MAX_BOOKS]={ {"1","唐诗三百首","孙洙","南京大学出版社",1}, {"2","三体","刘慈欢","北美权威科幻类出版社",1}, {"3","稻草人","叶圣陶","湖南儿童出版社",1}, {"4","老人与海","海明威","上海译文出版社",1}, {"5","c语言","泰戈尔","浙江文艺出版社",1}}; 借书
好的,以下是借书函数的代码:
```
void borrowBook(Book bookList[], int numbooks, char id[]) {
int i;
for (i = 0; i < numbooks; i++) {
if (strcmp(id, bookList[i].id) == 0) {
if (bookList[i].available == 0) {
printf("该书已被借出,请选择其他书籍!\n");
return;
} else {
bookList[i].available = 0;
printf("借书成功!\n");
return;
}
}
}
printf("未找到该书,请重新输入书籍编号!\n");
}
```
函数的作用是根据输入的书籍编号 `id` 来进行借书操作。如果输入的书籍编号不存在,则会提示重新输入;如果该书已经被借出,则无法进行借书操作;如果该书未被借出,则将该书的 `available` 标志改为 0,表示该书已经被借出。
#define NUM 10 //用户数量 #define MAX_BOOKS 5 //管理员书单 struct Books_list { int id; //书号 char name[30]; //书名 char author[30]; //作者 char press[30]; //出版社名 }; struct Books_list book1[MAX_BOOKS]={ {1,"唐诗三百首","孙洙","南京大学出版社"}, {2,"三体","刘慈欢","北美权威科幻类出版社"}, {3,"稻草人","叶圣陶","湖南儿童出版社"}, {4,"老人与海","海明威","上海译文出版社"}, {5,"c语言","泰戈尔","浙江文艺出版社"}, };怎么改正
根据您提供的代码,我没有看到任何错误。这段代码定义了一个结构体`Books_list`和一个包含5个结构体的数组`book1`,每个结构体包含4个成员变量。同时,使用了预定义的常量`MAX_BOOKS`来指定数组大小,这样就可以避免了上述错误。
如果您仍然遇到问题,请提供更多的代码和错误信息,方便我帮您进一步排查。
阅读全文