# include<stdio.h>
# include<string.h>
# define FORMAT "%d\n%s\n%f\n%f\n%f\n"
struct student
{
int num;
char name[20];
float score[3];
}stu={12345,"lili",67.5,89,78.6};//就是这个地方出错了,说是不能直接将double传给float,这是为什么?
void main()
{
void print(struct student *);
print(&stu);
}
void print(struct student *p)
{
printf(FORMAT,p->num,p->name,p->score[0],p->score[1],p->score[2]);
printf("\n");
}
我将78.6改成78.5的时候就不会警告,但是改成其他的小数就又错了,再者,在后面加上f的话,打印出来的却是78.599998这是个什么情况?我都指定类型了怎么还错误啊?