diff --git a/README b/README new file mode 100644 index 0000000..1cdf286 --- /dev/null +++ b/README @@ -0,0 +1 @@ +Marcin Jalbrzykowski diff --git a/vim-challenge/args.c b/vim-challenge/args.c new file mode 100644 index 0000000..99f4f95 --- /dev/null +++ b/vim-challenge/args.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +struct test { + int i1, i2; + double d; + char i3; +}; + +struct test* alloc(const char *fmt, ...) { + struct test *out = malloc(sizeof(struct test*)); + va_list args; + va_start(args, fmt); + + int i1_has_value = 0; + int i2_has_value = 0; + + for(int i = 0; i < strlen(fmt); i++) { + switch(fmt[i]) { + case 'i': + if(!i1_has_value) { + out->i1 = va_arg(args,int); + i1_has_value = 1; + } + else if(!i2_has_value) { + out->i2 = va_arg(args,int); + i2_has_value = 1; + } + else + out->i3 = va_arg(args,int); + break; + case 'd': + out->d = va_arg(args,double); + break; + } + } + + va_end(args); + + return out; +} + +int main() { + struct test *p = alloc("iidi", 33, 44, 3.14, 55); + printf("%d %d %f %d\n", p->i1, p->i2, p->d, p->i3); + + return 0; +} diff --git a/vim-challenge/integral.c b/vim-challenge/integral.c index e5049b4..89bac75 100644 --- a/vim-challenge/integral.c +++ b/vim-challenge/integral.c @@ -1,34 +1,39 @@ #include +#include -float integral(float a, float b, float (*f) (float), int n) { - int i; - float dx = (b - a) / n; - float value_of_integral = 0.0; - -for (i=0; i