#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#define EPSILON 0.00000001
static int compare(double num1, double num2, double error)
{
if(fabs(num1
-num2
) <= DBL_EPSILON
) return 1;
else
return 0;
}
static int areEqual(const double *x, int size, double error)
{
int i;
for (i = 0; i < size - 1; i++)
if (!compare(x[i], x[i + 1], error))
return 0;
return 1;
}
int main(int argc, char **argv)
{
double tab[] = {9.2, 9.7, 9.3, 9.6, 9.4, 10.0, 9.1, 9.7};
double error = 0.8;
const int N = 8;
printf("%d\n", areEqual
(tab
, N
, error
));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPGZsb2F0Lmg+CgojZGVmaW5lIEVQU0lMT04gMC4wMDAwMDAwMQoKc3RhdGljIGludCBjb21wYXJlKGRvdWJsZSBudW0xLCBkb3VibGUgbnVtMiwgZG91YmxlIGVycm9yKQp7CiAgICBpZihmYWJzKG51bTEtbnVtMikgPD0gREJMX0VQU0lMT04pCiAgICAgICAgcmV0dXJuIDE7CiAgICBlbHNlCiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0YXRpYyBpbnQgYXJlRXF1YWwoY29uc3QgZG91YmxlICp4LCBpbnQgc2l6ZSwgZG91YmxlIGVycm9yKQp7CiAgICBpbnQgaTsKICAgIGZvciAoaSA9IDA7IGkgPCBzaXplIC0gMTsgaSsrKQogICAgICAgIGlmICghY29tcGFyZSh4W2ldLCB4W2kgKyAxXSwgZXJyb3IpKQogICAgICAgICAgICByZXR1cm4gMDsKICAgIHJldHVybiAxOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCnsKCiAgICBkb3VibGUgdGFiW10gPSB7OS4yLCA5LjcsIDkuMywgOS42LCA5LjQsIDEwLjAsIDkuMSwgOS43fTsKICAgIGRvdWJsZSBlcnJvciA9IDAuODsKICAgIGNvbnN0IGludCBOID0gODsKCiAgICBwcmludGYoIiVkXG4iLCBhcmVFcXVhbCh0YWIsIE4sIGVycm9yKSk7CgogICAgcmV0dXJuIDA7Cn0K