C语言输入10本书籍名称存入数组中,逆序输出
时间: 2024-12-08 10:13:57 浏览: 14
Java控制台输入数组并逆序输出的方法实例 <font color=red>原创</font>
在C语言中,你可以使用动态内存分配和字符数组来存储书籍名称,并利用数组的逆序特性来实现逆序输出。以下是简单的步骤:
1. **声明和初始化**:
首先,你需要定义一个数组用于存储书籍名称,由于题目未指定数组大小,我们假设最多可以存储10本,所以创建一个容量为10的字符数组。
```c
#include <stdio.h>
#include <stdlib.h> // 包含动态内存分配的头文件
#define MAX_BOOKS 10
char books[MAX_BOOKS][50]; // 每本书名长度设为50
```
2. **输入书籍名称**:
使用`fgets()`函数从用户那里获取书籍名称并存储到数组中。
```c
for (int i = 0; i < MAX_BOOKS; i++) {
printf("请输入第%d本书的名称: ", i+1);
fgets(books[i], sizeof(books[i]), stdin); // 注意去掉行尾的换行符
books[i][strlen(books[i])-1] = '\0'; // 结束字符串
}
```
3. **逆序输出书籍名称**:
使用两个指针,一个指向数组开始,一个指向数组结束,交换它们所指的元素直到相遇。
```c
void reverse_books(char books[][50]) {
int start = 0;
int end = MAX_BOOKS - 1;
while (start < end) {
char temp[50];
strcpy(temp, books[start]);
strcpy(books[start], books[end]);
strcpy(books[end], temp); // 注意这里需要复制整个字符串
start++;
end--;
}
}
// 输出逆序后的书籍名称
void print_books(char books[][50]) {
for (int i = 0; i < MAX_BOOKS; i++) {
printf("%s\n", books[i]);
}
}
int main() {
reverse_books(books);
print_books(books);
return 0;
}
```
当你运行这个程序时,它会先接收10本书的名称,然后逆序显示它们。
阅读全文