结构体作为实参和形参
本帖最后由 松鼠呀 于 2020-2-5 20:38 编辑那位大哥可以看下我对着44一样敲的代码,结果是错的,
#include<stdio.h>
struct Date
{ int year;
int month;
int day;
};
struct Book
{ char title;
char author;
float price;
struct Date date;
char publisher;
};
struct Book getInput(struct Book book);
void printBook(struct Book book);
struct Book getInput(struct Book book)
{ printf("请输入书名:");
scanf("%s",book.title);
printf("请输入作者:");
scanf("%s",book.author);
printf("请输入售价:");
scanf("%s",&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.author);
printf("作者:%s\n",book.price);
printf("售价:%.2f\n",book.title);
printf("出版日期:%d-%d-%d\n",&book.date.year,&book.date.month,&book.date.year);
printf("出版社:%s\n",book.publisher);
}
int main(void)
{ struct Book b1,b2;
printf("请录入第一本书的信息...\n");
b1=getInput(b1);
putchar('\n');
printf("请录入第二本书的信息...\n");
b2=getInput(b2);
printf("\n\n录入完毕,现在开始打印验证...\n\n");
putchar('\n');
printf("打印第一本书的信息...");
printBook(b1);
putchar('\n');
printf("打印第二本书的信息...");
printBook(b2);
return 0;
}
那正确的结果是什么? 我找到错误了。第一,输入价格的时候不应该用%s。第二,你自定义的打印函数对应关系弄错了。 召唤风云 发表于 2020-2-6 11:28
我找到错误了。第一,输入价格的时候不应该用%s。第二,你自定义的打印函数对应关系弄错了。
大佬,再麻烦问一下为什么0值指针不能进行间接引用啊 如果指针存的是0,系统就会到内存地址为0的地方找变量,然而根本就没有地址为0的地方,然后就会出错。我们使用零指针就是因为没有零这个位置,很方便,也很容易判断该指针是不是指向一个变量,if(xxx!=0)就说明该指针指向一个明确的变量。 我现在竟然没有权限加好友。也不能留言。等我权限高了再加你好友。
页:
[1]