Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- typedef struct values_s
- {
- double *x;
- double *funcval ;
- double *derivate ;
- long size ;
- } values_t ;
- typedef enum boolean_e
- {
- FALSE = 0,
- TRUE = 1
- } boolean_t ;
- values_t * values_allocate (long size );
- boolean_t values_insert ( values_t *val , double x1 , double x2 , double x3 , long index );
- boolean_t values_free ( values_t *val);
- boolean_t values_print ( values_t *val);
- int main()
- {
- double a,b,c;
- values_t *t;
- long i;
- t=values_allocate(3);
- for(i=0;i<3;i++)
- {
- printf("\nx:");
- scanf("%lf",&a);
- printf("\nfunval:");
- scanf("%lf",&b);
- printf("\nderivate:");
- scanf("%lf",&c);
- values_insert(t,a,b,c,i);
- }
- values_print(t);
- values_free(t);
- return 0;
- }
- values_t * values_allocate (long size )
- {
- values_t *elem;
- elem=calloc(1,sizeof(values_t));
- if(!elem)
- {
- fprintf(stderr,"Error");
- return 0;
- }
- elem->x=calloc(size,sizeof(double));
- if(!(elem->x))
- {
- fprintf(stderr,"Error");
- free(elem);
- return 0;
- }
- elem->funcval=calloc(size,sizeof(double));
- if(!(elem->funcval))
- {
- fprintf(stderr,"Error");
- free(elem->x);
- free(elem);
- return 0;
- }
- elem->derivate=calloc(size,sizeof(double));
- if(!(elem->derivate))
- {
- fprintf(stderr,"Error");
- free(elem->x);
- free(elem->funcval);
- free(elem);
- return 0;
- }
- elem->size=size;
- return elem;
- }
- boolean_t values_insert ( values_t *val , double x1 , double x2 , double x3 , long index )
- {
- if(!val||index<0||index>=val->size)
- return FALSE;
- val->x[index]=x1;
- val->funcval[index]=x2;
- val->derivate[index]=x3;
- return TRUE;
- }
- boolean_t values_free ( values_t *val)
- {
- if(!val)
- return FALSE;
- free(val->derivate);
- val->derivate=0;
- free(val->funcval);
- val->funcval=0;
- free(val->x);
- val->x=0;
- free(val);
- return TRUE;
- }
- boolean_t values_print ( values_t *val)
- {
- if(!val)
- return FALSE;
- long i;
- for(i=0;i<val->size;i++)
- printf("%ld %lf %lf %lf\n",i,val->x[i],val->funcval[i],val->derivate[i]);
- return TRUE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement