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;
    out_size = size;

    memset(out, 0, 100 * sizeof(float));

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

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

    }
    return 0;
}

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