已知一个班级的应到与实到,且满足以下规则请假人数不得超过班级总人数的20%,超出的请假人数每人/次扣0.5分,如果还超过班级总人数50%超出的请假人数每人/次扣1分另外如果一个班级人数的20%或50%不为整数则进行四舍五入。求应扣多少分,用c语言代码制作网页解决此问题。
时间: 2024-01-21 16:20:19 浏览: 22
以下是用C语言计算应扣分数的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int total, present, absent, half, fifth;
float max_absent;
printf("请输入班级总人数和实到人数(用空格隔开):");
scanf("%d %d", &total, &present);
absent = total - present;
max_absent = round(total * 0.2); // 四舍五入取整
if (absent <= max_absent) {
printf("请假人数没有超过班级总人数的20%%,不需要扣分。\n");
return 0;
}
half = round(total * 0.5);
if (absent <= half) {
printf("请假人数超过班级总人数的20%%但不超过50%%,每人/次扣0.5分。\n");
printf("应扣分数为 %.1f 分。\n", (absent - max_absent) * 0.5);
} else {
printf("请假人数超过班级总人数的50%%,每人/次扣1分。\n");
printf("应扣分数为 %.1f 分。\n", (absent - half) * 1.0 + (half - max_absent) * 0.5);
}
return 0;
}
```
该代码通过用户输入班级总人数和实到人数,计算出缺席人数。然后根据缺席人数是否超过班级总人数的20%和50%,分别计算应扣分数并输出结果。注意要使用`round`函数将计算结果四舍五入取整。