vector_utils.c

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "vector_utils.h"
#include "tested_declarations.h"
#include "rdebug.h"

int read_vector_float(float *vec, int size, float stop_value)
{
    if(vec == NULL || size <= 0 ) return -1;
    int sizeD = 0;

    for(int i=0; i<size; i++)
    {
        if(scanf("%f", &(*(vec+i))) != 1)
        {
            return -1;
        }

        if(*(vec+0) == 0)
        {
            return 0;
        }
        sizeD++;

        if(*(vec+i) == stop_value)
        {
            sizeD--;
            break;
        }
    }
    return sizeD;
}

int create_histogram(const float *vec, int size, int *out, int out_size)
{
    if(vec == NULL || size <= 0 || out == NULL || out_size <= 0) return 1;
/*
    float max = *(vec + 0);

    for(int i = 0; i < size; i++)
    {
        float a = *(vec + i);
        if(max < a ) max = *(vec + i);
    }
*/
    for(int i = 0; i < 100; i++)
    {
        *(out + i) = 0;
    }

    for(int j = 0; j < size; j++)
    {
        float a = *(vec + j), b = 0, c = 1;

        for(int i = 0; i < out_size; i++)
        {
            if( a >= b && a < c )
            {
                *(out + (int)b) += 1;
            }
            b++;
            c++;
        }

    }
    return 0;
}

void display_vector(const int* tab, int size)
{
    int i;
    for(i=0; i<size; i++)
    {
        printf("%d ", *(tab+i));
    }
}