#include <stdlib.h>
#include <stdio.h>
#include <string.h>
typedef double (*function)(double);
double* tabl_func(function f, double xmin, double xmax, double dx)
{
int i = 0;
double sizemas;
sizemas = ((xmax - xmin) / dx) + 1;
double *arry
= (double*)calloc(sizemas
, sizeof(double)); for (i=0;i<sizemas;i++)
{
xmin += dx;
arry[i] = f(xmin);
}
return arry;
}
double Y(double x) { return 1 - x; }
void print_res(int size, double* arry)//функция печати
{
for (int i = 0; i < size; i++)
{
printf("--------------------\n"); printf("| %5.5lf |\n", arry
[i
]); }
}
int main(int argc, const char * argv[])
{
double* arry;
// arry = (double*)calloc(sizemas, sizeof(double)); // Утечка!!
arry = tabl_func(Y, 0, 1, 0.1);
print_res(11,arry);
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKCnR5cGVkZWYgZG91YmxlICgqZnVuY3Rpb24pKGRvdWJsZSk7Cgpkb3VibGUqIHRhYmxfZnVuYyhmdW5jdGlvbiBmLCBkb3VibGUgeG1pbiwgZG91YmxlIHhtYXgsIGRvdWJsZSAgZHgpCnsKCiAgICBpbnQgaSA9IDA7CiAgICBkb3VibGUgc2l6ZW1hczsKICAgIHNpemVtYXMgPSAoKHhtYXggLSB4bWluKSAvIGR4KSArIDE7CiAgICBkb3VibGUgKmFycnkgPSAoZG91YmxlKiljYWxsb2Moc2l6ZW1hcywgc2l6ZW9mKGRvdWJsZSkpOwogICAgZm9yIChpPTA7aTxzaXplbWFzO2krKykKICAgIHsKICAgICAgICB4bWluICs9IGR4OwogICAgICAgIGFycnlbaV0gPSBmKHhtaW4pOwogICAgfQogICAgcmV0dXJuIGFycnk7Cn0KCmRvdWJsZSBZKGRvdWJsZSB4KSB7IHJldHVybiAxIC0geDsgfQoKdm9pZCBwcmludF9yZXMoaW50IHNpemUsIGRvdWJsZSogYXJyeSkvL9GE0YPQvdC60YbQuNGPINC/0LXRh9Cw0YLQuAp7CiAgICBwcmludGYoInwgZih4KXxcbiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspCiAgICB7CiAgICAgICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CiAgICAgICAgcHJpbnRmKCJ8ICU1LjVsZiB8XG4iLCBhcnJ5W2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIGRvdWJsZSogYXJyeTsKICAgIC8vIGFycnkgPSAoZG91YmxlKiljYWxsb2Moc2l6ZW1hcywgc2l6ZW9mKGRvdWJsZSkpOyAgLy8g0KPRgtC10YfQutCwISEKICAgIGFycnkgPSB0YWJsX2Z1bmMoWSwgMCwgMSwgMC4xKTsKCiAgICBwcmludF9yZXMoMTEsYXJyeSk7Cgp9Cg==