void deletebook(Book bookList[]) { char delete_bookname[30]; for(int j=0;j<numbooks;j++) { printf("%5s\t%15s\t%10s\t%25s\n",bookList[j].id,bookList[j].name,bookList[j].author,bookList[j].press);//打印借完书后的新书单 } printf("请输入要删掉的书名:"); scanf("%s",delete_bookname); for(int j=0;j<numbooks;j++) { if(strcmp(bookList[j].name,delete_bookname)==0) { strcpy(bookList[j].id,bookList[j+1].id); strcpy(bookList[j].name,bookList[j+1].name); strcpy(bookList[j].author,bookList[j+1].author); strcpy(bookList[j].press,bookList[j+1].press); numbooks--; printf("删除图书信息成功!\n"); break; } } for(int j=0;j<numbooks;j++) { printf("%5s\t%15s\t%10s\t%25s\n",bookList[j].id,bookList[j].name,bookList[j].author,bookList[j].press);//打印借完书后的新书单 } }在删除图书信息之后可以重新按id排序怎么排
时间: 2024-03-31 19:35:15 浏览: 53
在删除图书信息之后重新按照id排序,可以按照以下步骤进行排列:
1.获取所有图书信息并按照id进行排序。
2.为每个图书信息重新分配id。可以使用循环,从1开始,逐个分配id,直到最后一个图书。
3.更新每个图书的id,并将其存储回数据库或其他数据存储系统中。
在你提供的代码中,重新按照id排序的代码可以添加在删除图书信息成功后的位置,具体代码如下:
void deletebook(Book bookList[]) {
char delete_bookname[30];
for(int j=0;j<numbooks;j++) {
printf("%5s\t%15s\t%10s\t%25s\n",bookList[j].id,bookList[j].name,bookList[j].author,bookList[j].press);//打印借完书后的新书单
}
printf("请输入要删掉的书名:");
scanf("%s",delete_bookname);
for(int j=0;j<numbooks;j++) {
if(strcmp(bookList[j].name,delete_bookname)==0) {
strcpy(bookList[j].id,bookList[j+1].id);
strcpy(bookList[j].name,bookList[j+1].name);
strcpy(bookList[j].author,bookList[j+1].author);
strcpy(bookList[j].press,bookList[j+1].press);
numbooks--;
printf("删除图书信息成功!\n");
break;
}
}
//重新按照id排序
for(int i=0;i<numbooks;i++) {
sprintf(bookList[i].id, "%d", i+1);
}
for(int j=0;j<numbooks;j++) {
printf("%5s\t%15s\t%10s\t%25s\n",bookList[j].id,bookList[j].name,bookList[j].author,bookList[j].press);//打印借完书后的新书单
}
}
需要注意的是,该代码中重新按照id排序的代码仅供参考,具体实现可能因系统需求而异。
阅读全文