#include <stdio.h>

int main() {
    int a, b,c,d;
    float sum;
    scanf("%d %d %d %d", &a,&b,&c,&d);
    sum=(a*20+b*10+c*20+d*50)/100.0;
    printf("%.1f",sum);

    return 0;
}
  1. 在计算sum的值时,使用了%运算符。%运算符是取余运算符,而不是百分比运算符。如果要计算百分比,应该使用除法运算符/。
  2. sum的类型被定义为float,但是在使用printf函数打印时,使用了%d格式化符来表示一个整数。应该使用%f格式化符来表示一个浮点数。

3.为什么100后面加.0 ?

在计算机中,整数除以整数的结果仍然是一个整数。如果想得到一个浮点数的结果,需要将其中一个操作数转换为浮点数。在这种情况下,我们将100转换为100.0,以确保除法运算得到的是浮点数结果,而不是整数结果。

通过将100转换为浮点数,我们可以得到一个精确到小数点后一位的浮点数结果。如果不进行转换,结果将被截断为整数部分,小数部分将被丢弃。