Salve a tutti. :-)
In un esercizio (King Kim N., Programmazione in C, Apogeo, 2010, pag. 127) mi si chiede di scrivere un programma che riconosca il valore maggiore tra i numeri inseriti. I numeri inseriti dall'utente possono essere infiniti e, per interrompere il programma, occorre inserire un numero minore o uguale a zero. A questo punto il programma deve mostrare all'utente il valore maggiore inserito. Il programma che ho pensato è questo:
Il problema è che quando compilo e lancio il programma il valore che l'ultima chiamata alla printf mostra nel prompt dei comandi è sempre zero. Ho provato a modificare il programma facendo una chiamata alla printf prima del ciclo for, oppure usando tre variabili invece di due, ma il succo è che qualunque sia il valore che la variabile max assume (condizione che stabilisco nella funzione if) in output ho sempre zero! Cosa sto sbagliando? Grazie in anticipocodice:#include <stdio.h> int main(void) { float max, n; /*dichiaro le variabili*/ for (;n > 0;) { printf("immettere un numero maggiore di 0: "); /*il programma chiede all'utente di immettere un valore*/ scanf("%f", &n); if (n > max) n = max; /*assegno il valore di n alla variabile max*/ } printf("\nil numero piu' grande immesso e' %f", max); return 0; }