Buongiorno a tutti, devo implementare uno stupido programmino che presa in input una lista di interi, mi ritorni il valore massimo. Ora il programma effettuato nel seguente modo:
#include <stdlib.h>
#include <stdio.h> /* ora puoi usare NULL */
/* scrivi qui la definizione del tipo "elist" (elemento della lista) con i campi "info" (intero) e "next" (prossimo elemento) */
typedef struct elem{
struct elist* next;
int info;
}elist;
/* scrivi qui la definizione del tipo "plist" che e' un riferimento ad un oggetto di tipo "elist" */
typedef elist* plist;
/* inizio funzione */
int valore_massimo_lista(plist p){
/* scrivi qui il codice che calcola il valore massimo contenuto in una lista
semplicemente concatenata di interi passata in input e lo ritorna come output.
Se la lista non ha nessun elemento ritorna zero. */
plist temp = (plist)malloc(sizeof(elist));
int massimo=0;
temp = p;
while (p!=NULL) {
if (p->info > massimo)
massimo = p->info;
p = p->next;
}
return massimo;
}
viene compilato con 0 errori e 1 warning del tipo:
"warning: assignment from incompatible pointer type [enabled by default]"
associato all'istuzione:
p = p->next;
Il programma deve essere compilato su una macchina remota, che evidentemente è stata settata in modo da bloccare la compilazione anche solo a causa di un warning.
Qualche suggerimento?
GRazie mille