|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
就是创建一个图书馆的问题
//刚学C不久,🐟C视频课后答案没更新了,
我想问:
①创建一个结构体指针,后面给结构体分配空间比如 struct Book *book ; book=(struct Book*)malloc(n*sizeof(struct Book))定义一个指针开辟n个空间 与创建十个指针开辟一个空间是一样的吗?
②结构体动态分配空间,这方面感觉好混乱的感觉。
③请求帮助,就是带你学C带你飞中的,创建图书馆的问题,🐟友大佬们,帮帮,卡在这,不知道代码怎么写下去了,
#include<stdio.h>
#include<stdlib.h>
struct Data
{
int year;
int month;
int day;
};
struct Book
{
char name[128];
char publisher[40];
char author[40];
float price;
struct Data data;
};
int main()
{
int n;
int i;
printf("请输入要存入图书的数量:");
scanf("%d",&n);
struct Book *ptr;
ptr=(struct Book *)malloc(n*sizeof(struct Book));
struct Book *book[10];
//int length=(sizeof(book)/sizeof[0]);
for(i=0;i<n;i++)
{
printf("请输入书名:");
scanf("%s",ptr->name);
printf("请输入出版社:");
scanf("%s",ptr->publisher);
printf("请输入价格:");
scanf("%f",&ptr->price);
printf("请输入作者:");
scanf("%s",ptr->author);
printf("请输入发行日期:");
scanf("%d-%d-%d",&ptr->data.year,&ptr->data.month,&ptr->data.day);
}
for(i=0;i<n;i++)
{
book[i]=&ptr[i];
}
printf("welcome to 龙大大的图书馆\n");
printf("龙大大目前的图书为:\n");
for(i=0;i<n;i++)
{
printf("书名:");
printf("%s",ptr[i]->name);
putchar('\n');
printf("出版社:");
printf("%s",book[i]->publisher);
putchar('\n');
printf("作者:");
printf("%s",book[i]->author);
putchar('\n');
printf("发行日期:");
printf("%d-%d-%d",book[i]->data.year,book[i]->data.month,book[i]->data.day);
putchar('\n');
printf("价格:");
printf("%.1f",book[i]->price);
putchar('\n');
}
return 0;
} |
|