各位,这个哪里错了,我不理解呀

img

img

1.把define放在main函数外面
2.double r改成float r
scanf("%lf",&r)改成scanf("%f",&r)

define只能写在函数体外面吧

double 强转赋值给float会发生精度损失

#include <stdio.h>

int main(int argc, char **argv)
{

#define PI (3.14)

    double r;
    float s;
    scanf("%lf", &r);
    s = (float)(r * r * PI);
    printf("%.4f\n", s);
    return 0;
}
./area 
2.3
16.6106

这个不是没问题么