定义数组存入5个名字然后逆序输出c语言
时间: 2024-02-23 07:01:38 浏览: 70
下面是一个示例程序,可以实现定义一个包含5个字符串的数组,然后逆序输出这个数组中的所有字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char names[5][100]; // 定义包含5个字符串的数组
int i;
// 读入5个名字
for (i = 0; i < 5; i++) {
printf("请输入第%d个名字:", i + 1);
scanf("%s", names[i]);
}
// 输出逆序后的名字
printf("逆序输出的名字:\n");
for (i = 4; i >= 0; i--) {
printf("%s\n", names[i]);
}
return 0;
}
```
在这个程序中,我们使用了一个包含5个字符串的二维数组 `names`,每个字符串的最大长度为100。然后通过循环读入5个名字,放入这个数组中。最后再循环逆序输出这个数组中的所有字符串。
相关问题
输入十本书籍的名称存入数组中逆序输出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;
}
```
输入10本书籍的名称并存入数组中,逆序输出,使用c语言编辑
在C语言中,你可以通过动态内存分配和指针来实现这个功能。首先,你需要创建一个结构体来存储书籍的信息,然后定义一个动态数组来存放书籍。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义书籍结构体
typedef struct {
char book_name[50];
} Book;
int main() {
int num_books = 10;
Book* books; // 动态数组
// 分配内存
books = (Book*)malloc(num_books * sizeof(Book));
// 输入书籍名
for (int i = 0; i < num_books; i++) {
printf("请输入第%d本书的名称: ", i+1);
fgets(books[i].book_name, sizeof(books[i].book_name), stdin); // 调整fgets大小防止换行符溢出
books[i].book_name[strcspn(books[i].book_name, "\n")] = '\0'; // 移除fgets后的换行符
}
// 逆序存储并输出
puts("\n书籍列表(逆序):");
for (int i = num_books - 1; i >= 0; i--) {
printf("%s\n", books[i].book_name);
}
// 释放内存
free(books);
return 0;
}
阅读全文