Dato un file di testo, devo memorizzarne i valori interi, in un vettore di dimensione opportuna. Poi di questo array devo trovarne il minimo attraverso una funzione ricorsiva.
Non mi da errori in compilazione, ma non funziona correttamente
#include <stdio.h>
#include <stdlib.h>
int* leggi_array(const char* nomefile, int* n);
int minimo(int* array, int size);
int minimoDiRic(int vett[], int size, int minimo, int i);
int main()
{
char* nomefile = "file1.txt";
int size = 0;
int* v = leggi_array(nomefile, &size);
printf("v = ");
int i;
for(i = 0; i < size; i++)
printf("[%d]", v[i]);
printf("\n");
minimo(v, size);
}
int* leggi_array(const char* nomefile, int* n)
{
FILE *f = fopen(nomefile,"r");
if(f == NULL)
{
printf("Errore apertura file\n");
exit(1);
}
int *v, el, i = 0;
while(fscanf(f, "%d", &el) != EOF)
(*n)++;
fseek(f, 0, 0);
v = (int*) malloc ((*n) * sizeof(int));
while(fscanf(f, "%d", &el) != EOF)
{
v[i] = el;
i++;
}
printf("*n = %d\n", (*n));
return v;
}
int minimo(int* array, int size)
{
int i = 0, mini = array[i], res;
printf("minimo: %d\n", minimoDiRic(array, size, mini, i));
}
int minimoDiRic(int vett[], int size, int minimo, int i)
{
if(i+1 == size)
return minimo;
if(vett[i] < minimo)
minimo = vett[i];
minimoDiRic(vett, size, minimo, ++i);
}