Ciao a tutti, vi posto questo mio esercizio in cui viene chiesto in input degli interi e, tramite puntatori, si calcoli il massimo tra i numeri inseriti...sicuramente ci saranno degli errori logici, ma non posso nemmeno verificarlo perche subito dopo la prima scanf in cui chiedo di immettere quanti numeri controllareil programma va in loop...si blocca...mi potreste aiutare a capirne il motivo per cortesia? Grazie mille...ecco il codice:
#include <stdio.h>
#define SIZE 50
int max (int *n, int *n_elem);
int main ()
{ int array[SIZE] = {0};
int num_elem;
int massimo;
int i;
printf ("Inserire il numero degli elementi del vettore di cui si vuole sapere il max:\n");
scanf ("%d\n\n", &num_elem);
/* fatta questa scanf il programma si ferma!*/
printf ("Inserire adesso i numeri che si vuole controllare:\n");
for (i=0; i<num_elem; i++)
{ scanf ("%d", &array[i]);
printf ("array[%d] = %d ", i, array[i]);
}
massimo = max (array, &num_elem);
printf ("Il più grande numero tra i %d inseriti è:\n%d\n", num_elem, massimo);
return 0;
}
int max (int *n, int *n_elem)
{ int j,z;
int hold;
for (j=1; j<*n_elem; j++)
{for (z=0; z<(*n_elem - 1); z++)
{ if (n[z] > *(n + z))
{ hold = n[z];
n[z] = *(n + z);
*(n + z) = hold;}
}
}
return *(n + (*n_elem - 1));
}