C语言 结构体函数之传址调用

执行结果截图:

C语言 结构体函数之传址调用

 

代码:

#include "stdio.h"
#include "stdlib.h"

# define PRINTF(templt, ...) fprintf(stderr, templt, ##__VA_ARGS__)
# define PRINT(format, ...) printf(# format, ##__VA_ARGS__)

struct Date
{
int year;
int month;
int day;
};

struct Book
{
char title[120];
char author[40];
float price;
struct Date date;
char publisher[40];
};

void getBookInput(struct Book * book);
void printBook(struct Book * book);

void getBookInput(struct Book * book)
{
// 输入结构体变量的值并打印
PRINT(请输入书名 :);
scanf("%s", book->title);

PRINT(请输入作者 :);
scanf("%s", book->author);

PRINT(请输入售价 :);
scanf("%f", &book->price);

PRINT(请输入出版日期(按年月日依次输入):);
scanf("%d", &book->date.year);
scanf("%d", &book->date.month);
scanf("%d", &book->date.day);

PRINT(请输入出版社 :);
scanf("%s", book->publisher);
}

void printBook(struct Book * book)
{
PRINT(书名 : %s\n, book->title);
PRINT(作者 : %s\n, book->author);
PRINT(售价 : %.2f\n, book->price);
PRINT(出版日期 : %d-%d-%d\n, book->date.year, book->date.month, book->date.day);
PRINT(出版社 : %s\n, book->publisher);
}

int main()
{
struct Book b1;
struct Book b2;

PRINT(\n请录入第一本书的信息...\n);
getBookInput(&b1);
putchar('\n');
PRINT(请录入第二本书的信息...\n);
getBookInput(&b2);

PRINT(\n\n录入完毕,现在开始打印验证...\n\n);

PRINT(打印第一本书的信息...\n);
printBook(&b1);
putchar('\n');
PRINT(打印第二本书的信息...\n);
printBook(&b2);

return 0;
}
上一篇:初学者笔记(输入一个整数n和n个整数,输出这n个整数的最大值。)给定初始值


下一篇:华电(华北电力大学)C语言题库全集~C语言入门