|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <stdlib.h>
- //鱼C论坛——BaysideLizard写于2023年11月28日
- struct Test
- {
- int x;
- int y;
- }t1,t2;
- struct Date
- {
- int year;
- int month;
- int day;
- };
- struct Book
- {
- char title[128];
- char author[40];
- float price;
- struct Date date;
- char publisher[40];
- };
- struct Book inputBook(struct Book book);
- void printBook(struct Book book);
- void inputBook_pointer(struct Book *book);
- void printBook_pointer(struct Book *book);
- int main()
- {
- t1.x = 1;
- t1.y = 2;
- t2 = t1;
- printf("t2.x = %d,t2.y = %d\n\n",t2.x,t2.y);
- //说明两个结构体变量之间可以直接使用赋值号
- //前提是里边的类型一样。
- struct Book b1,*b2;
- //用malloc函数为结构体分配存储空间
- b2 = (struct Book*)malloc(sizeof(struct Book));
- if(b2 == NULL)
- {
- printf("内存分配失败!");
- exit(1);
- }
- //传递结构体变量:
- printf("请输入第一本书的信息:\n");
- b1 = inputBook(b1);
- putchar('\n');
- //传递结构体指针:
- printf("请输入第二本书的信息:\n");
- inputBook_pointer(b2);
- printf("\n===数据录入完毕===\n\n");
- //传递结构体变量实验:
- printf("打印第一本书的信息:\n");
- printBook(b1);
- putchar('\n');
- printf("打印第二本书的信息:\n");
- printBook_pointer(b2);
- free(b2);
- return 0;
- }
- struct Book inputBook(struct Book book)
- {
- printf("请输入书名:");
- scanf("%s",book.title);
- printf("请输入作者:");
- scanf("%s",book.author);
- printf("请输入售价:");
- scanf("%f",&book.price);
- printf("请输入出版日期:");
- scanf("%d-%d-%d",&book.date.year,&book.date.month,&book.date.day);
- printf("请输入出版社:");
- scanf("%s",book.publisher);
- return book;
- }
- void printBook(struct Book book)
- {
- printf("书名:%s\n",book.title);
- printf("作者:%s\n",book.author);
- printf("售价:%.2f\n",book.price);
- printf("出版日期:%d-%d-%d\n",book.date.year,book.date.month,book.date.day);
- printf("出版社:%s\n",book.publisher);
- }
- void inputBook_pointer(struct Book *book)
- {
- printf("请输入书名:");
- scanf("%s",book->title);
- printf("请输入作者:");
- scanf("%s",book->author);
- printf("请输入售价:");
- scanf("%f",&book->price);
- printf("请输入出版日期:");
- scanf("%d-%d-%d",&book->date.year,&book->date.month,&book->date.day);
- printf("请输入出版社:");
- scanf("%s",book->publisher);
- }
- void printBook_pointer(struct Book *book)
- {
- printf("书名:%s\n",book->title);
- printf("作者:%s\n",book->author);
- printf("售价:%.2f\n",book->price);
- printf("出版日期:%d-%d-%d\n",book->date.year,book->date.month,book->date.day);
- printf("出版社:%s\n",book->publisher);
- }
复制代码
运行结果:
t2.x = 1,t2.y = 2
请输入第一本书的信息:
请输入书名:《带你学C带你飞》
请输入作者:小甲鱼
请输入售价:49.90
请输入出版日期:2017-11-11
请输入出版社:清华大学出版社
请输入第二本书的信息:
请输入书名:《零基础入门学习Python》
请输入作者:小甲鱼
请输入售价:49.50
请输入出版日期:2016-11-11
请输入出版社:清华大学出版社
===数据录入完毕===
打印第一本书的信息:
书名:《带你学C带你飞》
作者:小甲鱼
售价:49.90
出版日期:2017-11-11
出版社:清华大学出版社
打印第二本书的信息:
书名:《零基础入门学习Python》
作者:小甲鱼
售价:49.50
出版日期:2016-11-11
出版社:清华大学出版社
Process returned 0 (0x0) execution time : 36.130 s
Press any key to continue.
在FishC学C的第23天 |
|