C程序中的“数组下标不是整数”

Mat*_*uez 6 c

deviation函数向我抛出以下错误:"Array subscript is not an integer". 如果您能帮我找到错误的原因,我将不胜感激。

float average(float data[], int n) {
    float total = 0;
    float *p = data;

    while (p < (data + n)) {
        total = total + *p;
        p++;
    }

    return total / n;
}

float deviation(float data[], int n) {
    float data_average = average(data, n);
    float total;
    float *p = data;

    while (p < (data + n)) {
        total += (data[p] - data_average) * (data[p + 1] - data_average);
    }

    return total / 2;
}
Run Code Online (Sandbox Code Playgroud)

yam*_*tes 8

p是一个指向浮点数的指针。这就是您收到错误的原因。

float *p, total;

...

total += (datos[p]-prom)*(datos[p+1]-prom);
Run Code Online (Sandbox Code Playgroud)

您只能ints在 C 中用作数组索引。