用结构体算学生成绩管理系统及格率出现错误

我用结构体stu[ ].result1记录语文成绩,chinesenum1记录不及格人数,chinesenum2记录几个人数,pass1记录语文及格率=及格人数/总人数,单个及格人数,不及格人数,总人数可以打印出来,但是及格率就是打印不出来,咋办呀

img

img

因为及格人数小于总人数,用及格人数/总人数的时候,这两个数都是整数,计算结果也是整数,所以是0。(在C语言中,2/5的结果是0,不是0.4,因为2和5都是int类型,计算结果也默认是int类型,0.4保留整数是0)。

所以,计算及格率的时候,需要用下面的公式 :

及格率=1.0 * 及格人数 / 总人数; 
这个得出来的是小于1的数,比如0.4

或者

及格率=100.0 * 及格人数 / 总人数; 
这个计算出来的是百分比,比如40
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632