我的总和面积公式没有计算

My formula for total and area is not calculating

所以在我正在做的项目中,我有一个以原点为中心的圆,我需要通过它切割一条垂直线。我正在尝试计算较小比例的圆的面积;我的输入是半径和左右手比例。现在我只是想确保它正确地进行了我的计算,并且它正确地计算了比率,但它根本没有计算比率面积。请帮忙

int main(){
float radius, left, right, total;
float ratio;
float ratioArea = ratio*pi*pow(radius, 2);

scanf("%d%d%d", &radius, &left, &right);

if(left == right)
{
    printf("left and right are equal");
}

// do area calculations with righthand side
else if(left > right)
{
    ratio = right / (right+left);
    ratioArea = ratio * pi * pow(radius, 2);

    printf("ratio= %.6f, area = %f\n", ratio, ratioArea);

}

// do area calculations with lefthand side
else if(left < right)
{   
    ratio = left / (left + right);
    ratioArea = ratio*pi*pow(radius, 2);

    printf("ratio = %.6f, area = %f\n", ratio, ratioArea);
}


return 0;

}

第一个问题在这里:

scanf("%d%d%d", &radius, &left, &right);

%d 读取一个整数并取 int *,而不是 float *。您需要 %f 才能扫描 float.

您还需要检查scanf是否成功:

if (scanf("%f%f%f", &radius, &left, &right) != 3) {
    // handle error here
    exit(EXIT_FAILURE);
}

scanf returns 成功扫描的项目数。如果 return 值不是 3,则至少有一个变量未设置。


第二个(主要是无害的)问题:

float radius, left, right, total;
float ratio;
float ratioArea = ratio*pi*pow(radius, 2);

您正在根据 ratioradius 的值初始化 ratioArea,此时尚未初始化。我很确定这段代码有未定义的行为。

只需删除初始化并改为执行 float ratioArea;;您已经在下面使用它的每个分支中设置了 ratioArea