C语言输入10本书籍名称存入数组中
时间: 2024-12-08 16:14:12 浏览: 16
在C语言中,如果你想输入10本书籍名称并存储在一个字符数组中,可以按照以下步骤操作:
1. 定义数组:首先需要创建一个足够大的字符数组,每个书籍名称通常包含书名本身及其结束符'\0'。例如,如果你假设每本书名最多为50个字符,那么可以用:
```c
char bookNames[10][51]; // 10本书,每本最多50字符 + 结束符
```
注意这里用了两维数组,`bookNames[i]`表示第i本书的名称。
2. 输入书籍名称:使用`fgets()`函数读取用户输入,并指定数组作为目标位置。遍历数组元素,每次读取一行直到所有书籍都输入完毕。
```c
for (int i = 0; i < 10; i++) {
fgets(bookNames[i], sizeof(bookNames[i]), stdin);
// 如果用户只输入了部分名字,需要去掉换行符
bookNames[i][strcspn(bookNames[i], "\n")] = '\0';
}
```
这里`strcspn()`用于移除字符串结尾的换行符。
3. 检查输入:确保输入正常并且不超过数组大小。如果用户输入过多,可能会导致数据溢出。可以在循环内部添加适当的错误检查。
记得,这个例子假定用户会按顺序输入,如果有其他需求,如允许用户选择编号然后输入对应书籍等,则需要额外的交互逻辑。
相关问题
查找书籍:从键盘输入10本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价并输出,使用c语言编写
以下是使用C语言编写的程序,用于从键盘输入10本书的名称和定价,并存入结构数组中。然后从中查找定价最高和最低的书的名称和定价,并输出。
```c
#include <stdio.h>
#include <string.h>
struct Book {
char name[100];
float price;
};
int main() {
struct Book books[10];
int i, n;
float maxPrice, minPrice;
int maxIndex, minIndex;
printf("请输入10本书的名称和定价:\n");
for (i = 0; i < 10; i++) {
printf("请输入第%d本书的名称:", i + 1);
scanf("%s", books[i].name);
printf("请输入第%d本书的定价:", i + 1);
scanf("%f", &books[i].price);
}
maxPrice = books[0].price;
minPrice = books[0].price;
maxIndex = 0;
minIndex = 0;
for (i = 1; i < 10; i++) {
if (books[i].price > maxPrice) {
maxPrice = books[i].price;
maxIndex = i;
}
if (books[i].price < minPrice) {
minPrice = books[i].price;
minIndex = i;
}
}
printf("定价最高的书是:%s,定价为:%.2f\n", books[maxIndex].name, books[maxIndex].price);
printf("定价最低的书是:%s,定价为:%.2f\n", books[minIndex].name, books[minIndex].price);
return 0;
}
```
C语言查找书籍:从键盘输入 n 本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。试编写相应程序。
下面是一个简单的 C 语言程序,实现了您所需要的功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 100
struct Book {
char name[100];
float price;
};
int main() {
int n;
struct Book books[MAX_BOOKS];
float max_price = 0, min_price = 999999;
char max_name[100], min_name[100];
printf("请输入书的数量:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第 %d 本书的名称和价格:", i + 1);
scanf("%s%f", books[i].name, &books[i].price);
if (books[i].price > max_price) {
max_price = books[i].price;
strcpy(max_name, books[i].name);
}
if (books[i].price < min_price) {
min_price = books[i].price;
strcpy(min_name, books[i].name);
}
}
printf("价格最高的书是 %s,价格为 %.2f。\n", max_name, max_price);
printf("价格最低的书是 %s,价格为 %.2f。\n", min_name, min_price);
return 0;
}
```
程序中定义了一个结构体 `Book`,包含了书的名称和价格。使用一个结构体数组 `books` 存储输入的书籍信息。在输入每一本书的信息时,分别比较它的价格和当前的最高/最低价格,并更新记录。最后输出找到的价格最高和最低的书籍的名称和价格。
需要注意的是,程序中假设了最开始输入的价格都不会超过 999999,这是为了方便比较而设置的。如果需要支持更大的价格范围,可以将 `min_price` 初始化为一个更大的值。
阅读全文