我需要编写一个程序来计算10个变量的算术和几何平均值。
当我在程序上运行测试时,当包含零的数字(例如,序列)时,它无法计算几何平均值:3 2 1 0 0 0 0 2 1 1 8;输出应为1.9195

*(当所有变量均为0时,输出应该是没有答案,但是当除其他数字之外还有零时-应该排除它们并仅计算自然数)

#include <stdio.h>
#include <math.h>
void main()
{
    int num, i;
    float sum, mult;

    printf("Enter 10 variables: ");

    sum = 0;
    mult = 1;

    for (i=0; i<10; i++)
    {
        scanf("%d", &num);
        sum += num;
        mult *= num;
    }

    if (mult == 0 || mult < 0)
    {
        printf("No positive numbers, hence no geometric mean");
    }
    else
    {
    printf(" %.4f", pow(mult, (1.0 / i)));
    }

    printf(" %.4f", sum / i);
}

最佳答案

mult *= num;


在这里,您将乘以0,则只会得到零输出。
如果number不为零,则添加一个要相乘的条件。

关于c - 计算C中级数的几何平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59136041/

10-12 22:50