执行结果截图:
代码:
#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; }