为什么一模一样的代码我编译全红

#include"stdio.h"
struct Book getInput(struct Book book);
void output(struct Book book);
struct BooK {
char name;
int money;
char author;
};

struct Book getInput(struct Book book)
{

printf("请输入书名:");
scanf("%s",book.name);
printf("请输入售价:");
scanf("%d",&book.money);
printf("请输入作者:");
scanf("%s",book.author);
return book;

}*/
void struct BOOK output(struct Book book)
{
printf("书名:%s",book.name);
printf("售价:%d",book.money);
printf("作者:%s",book.author);

}
int main()
{
struct BooK b1,b2;
printf("请录入第一本书的信息:");
b1=getInput(b1);
printf("\n\n\n");
printf("请录入第二本书的信息:");
b2=getInput(b2);
printf("\n\n\n录入成功\n\n\n");

printf("请验证信息");
output(b1);
printf("\n\n\n");
output(b2);
return 0;

}


四楼大哥的回答的 我改了 。。 三楼大哥的建议我也试了, 可是 最后的 output 执行不了。。。。 楼下两位大哥 我不能评论 点赞 发图 新的回复也不行。。只能编辑这个旧的回复 ////三楼的大哥 我用代码片上传了代码。。 然后我现在 main 那里output 方面 没有打印

 #include"stdio.h"
struct Book {
    char name;
    int money;
    char author;
};
struct Book getInput(struct Book book);
void output(struct Book book);

struct Book getInput(struct Book book)
{

    printf("请输入书名:");
    scanf("%s",&book.name);
    printf("请输入售价:");
    scanf("%d",&book.money);
    printf("请输入作者:");
    scanf("%s",&book.author);
    return book;
}
void output(struct Book book)
{
    printf("书名:%s",book.name);
    printf("售价:%d",book.money);
    printf("作者:%s",book.author);

}
int main(void)
{
    struct Book b1,b2;
    printf("请录入第一本书的信息:");
    b1=getInput(b1);
    printf("\n\n\n");
    printf("请录入第二本书的信息:");
    b2=getInput(b2);
    printf("\n\n\n录入成功\n\n\n");

    printf("请验证信息");
    output(b1);
    printf("\n\n\n");
    output(b2);
    system("pause");
    return 0;
}

struct book先定义在作为返回值使用,4-8行应该放在2-3行之前。另外请你重新发一下代码,这个太乱了。

//把
 void struct BOOK output(struct Book book);
 //改成
 void output(struct Book book)
 #include"stdio.h"
struct Book {
    char name[100] ;
    int money;
    char author[100] ;
};
struct Book getInput(struct Book *book);
void output(struct Book book);

struct Book getInput(struct Book *book)
{
    printf("请输入书名:");
    scanf("%s", &book->name);
    printf("请输入售价:");
    scanf("%d", &book->money);
    printf("请输入作者:");
    scanf("%s", &book->author);
    return *book;
}
void output(struct Book book)
{
    printf("书名:%s", book.name);
    printf("售价:%d", book.money);
    printf("作者:%s", book.author);

}
int main(void)
{
    struct Book b1, b2;
    printf("请录入第一本书的信息:");
    b1 = getInput(&b1);
    printf("\n\n\n");
    printf("请录入第二本书的信息:");
    b2 = getInput(&b2);
    printf("\n\n\n录入成功\n\n\n");
    printf("请验证信息\n");
    output(b1);
    printf("\n\n\n");
    output(b2);
    return 0;
}