输入十本书籍的名称存入数组中逆序输出c语言
时间: 2024-12-22 15:12:10 浏览: 4
引例任意输入个整数以逆序输出它们。-C语言数组教学
在C语言中,要将10本书名存储在一个字符数组并逆序输出,你可以这样做:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 10
// 定义书籍结构体(这里假设每本书都有一个唯一的ID)
typedef struct {
char title[MAX_BOOK_NAME_LENGTH]; // 预设书名长度,例如255字节
int id;
} Book;
int main() {
// 定义一个Book类型的数组存储书籍信息
Book books[MAX_BOOKS] = {{"书本1", 1}, {"书本2", 2}, ..., {"书本10", 10}};
// 获取输入的书籍名称,这里仅作演示,实际应用需要用户输入
for (int i = 0; i < MAX_BOOKS; ++i) {
printf("请输入第%d本书名:", i + 1);
fgets(books[i].title, sizeof(books[i].title), stdin); // 使用fgets避免换行符
}
// 逆序数组
for (int start = 0, end = MAX_BOOKS - 1; start < end; ++start, --end) {
// 注意字符串比较时需要考虑结束符'\0'
if (strcmp(books[start].title, books[end].title) > 0) {
// 交换两个元素的位置
char temp[Max_BOOK_NAME_LENGTH];
strcpy(temp, books[start].title);
strcpy(books[start].title, books[end].title);
strcpy(books[end].title, temp);
}
}
// 输出逆序后的书籍名称
printf("逆序后的书籍:\n");
for (int i = 0; i < MAX_BOOKS; ++i) {
printf("%d. %s\n", books[i].id, books[i].title);
}
return 0;
}
```
阅读全文