#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define EPSILON 0.00000001
static int compare(double num1, double num2, double error)
{
if(fabs(num1
-num2
) <= error
) 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+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPG1hdGguaD4KCiNkZWZpbmUgRVBTSUxPTiAwLjAwMDAwMDAxCgpzdGF0aWMgaW50IGNvbXBhcmUoZG91YmxlIG51bTEsIGRvdWJsZSBudW0yLCBkb3VibGUgZXJyb3IpCnsKICAgIGlmKGZhYnMobnVtMS1udW0yKSA8PSBlcnJvcikKICAgICAgICByZXR1cm4gMTsKICAgIGVsc2UKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGludCBhcmVFcXVhbChjb25zdCBkb3VibGUgKngsIGludCBzaXplLCBkb3VibGUgZXJyb3IpCnsKICAgIGludCBpOwogICAgZm9yIChpID0gMDsgaSA8IHNpemUgLSAxOyBpKyspCiAgICAgICAgaWYgKCFjb21wYXJlKHhbaV0sIHhbaSArIDFdLCBlcnJvcikpCiAgICAgICAgICAgIHJldHVybiAwOwogICAgcmV0dXJuIDE7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKewoKICAgIGRvdWJsZSB0YWJbXSA9IHs5LjIsIDkuNywgOS4zLCA5LjYsIDkuNCwgMTAuMCwgOS4xLCA5Ljd9OwogICAgZG91YmxlIGVycm9yID0gMC44OwogICAgY29uc3QgaW50IE4gPSA4OwoKICAgIHByaW50ZigiJWRcbiIsIGFyZUVxdWFsKHRhYiwgTiwgZXJyb3IpKTsKCiAgICByZXR1cm4gMDsKfQo=