一道C语言的结构题#includestruct student{\x05char name[40];\x05long l

问题描述:

一道C语言的结构题
#include
struct student
{
\x05char name[40];
\x05long long number;
\x05float ord,mid,fin,grade;
};
int main()
{
\x05struct student a={"Natsu",1001,75.0,80.0,80.0},b={"Grey",1002,90.0,70.0,80.0},c={"Lucy",1003,95.0,98.0,88.0},d={"Wendy",1004,80.0,80.0,80.0};
\x05a.grade=0.5*a.ord+0.2*a.mid+0.3*a.fin;
\x05b.grade=0.5*b.ord+0.2*b.mid+0.3*b.fin;
\x05c.grade=0.5*c.ord+0.2*c.mid+0.3*c.fin;
\x05d.grade=0.5*d.ord+0.2*d.mid+0.3*d.fin;
\x05printf("%s的总分是:%f\n学号:%d\n 平常成绩:%f\n期中成绩:%f\n期末成绩:%f\n\n",a.name ,a.grade ,a.number ,a.ord,a.mid ,a.fin );
\x05printf("%s的总分是:%f\n学号:%d\n 平常成绩:%f\n期中成绩:%f\n期末成绩:%f\n\n",b.name ,b.grade ,b.number ,b.ord ,b.mid ,b.fin );
\x05printf("%s的总分是:%f\n学号:%d\n 平常成绩:%f\n期中成绩:%f\n期末成绩:%f\n\n",c.name ,c.grade ,c.number ,c.ord ,c.mid ,c.fin );
\x05printf("%s的总分是:%f\n学号:%d\n 平常成绩:%f\n期中成绩:%f\n期末成绩:%f\n\n",d.name ,d.grade ,d.number ,d.ord ,d.mid ,d.fin );
\x05return 0;
}
为什么输出的平常成绩等都是0,编译器是VS2010
1个回答 分类:综合 2014-10-29

问题解答:

我来补答
printf("%s的总分是:%f\n学号:%d\n 平常成绩:%f\n期中成绩:%f\n期末成绩:%f\n\n",a.name ,a.grade ,a.number ,a.ord,a.mid ,a.fin ); 所有的输出中%d\n 平常成绩改为%f\n就行了 再答: 应该是应为结构体里面各成员存储在内存中是连续的,你的平常成绩存的是float ,用%d打印,对紧靠在ord后的mid 和fin有了影响
再问: 原来如此
再问: 谢啦
 
 
展开全文阅读
剩余:2000
上一页:求形状的题不会