PDA

View Full Version : Piccolo aiutino.....


Maverick82^
16-02-2002, 10:27
Salve sto iniziando il corso di Linguaggi di Programmazione e ho iniziato a fare i primi esercizi. Ho una domanda sul seguente codice:
/* Esercizio pag 120 n. 4.11*/
#include <stdio.h>
main ()
{
int n, n2, x=0, min;

printf("\nQuanti interi vuoi inserire?? ");
scanf("%d", &n);

for (x=1; x<=n; x++) {
scanf("%d", &n2);

if (n2 <= min)
min=n2;

}
printf("\nIl min è %d", min);

return 0;
}
il prog cerca il minimo tra n interi
Allora quando vado a compilare giustamente il compilatore mi da un warning dicendo : "POSSIBLE USE OF min BEFORE DEFINITION IN FUNCTION"
infatti quando vado a confrontare n2 con min min avrà un valore arbitrario, credo, in relazione alla cella di memoria. Ho provato a dare in output il valore di min prima dell'if e mi da 1780..!!! Ma allora ca@@o io confronto n2 con che cosa??(Naturalmente tutto ciò si rifersce solo alla prima iterazione, xkè dopo l'if assegno n2 a min)

alexmaz
16-02-2002, 11:19
Devi assegnare a min un valore... in questo caso o gli assegni il massimo intero possibile (INT_MAX in limits.h) oppure fai una prima scanf di n2 fuori dal ciclo e assegni a min questo valore.

Ciao

Maverick82^
16-02-2002, 12:15
Originariamente inviato da alexmaz
[B]Devi assegnare a min un valore... in questo caso o gli assegni il massimo intero possibile (INT_MAX in limits.h) oppure fai una prima scanf di n2 fuori dal ciclo e assegni a min questo valore.

Ciao

grazie per il chiarimento ;)

cionci
16-02-2002, 12:15
Che ti serve inizializzare x a 0 quando invece cominci il ciclo da 1 ?

Maverick82^
16-02-2002, 12:17
Originariamente inviato da cionci
[B]Che ti serve inizializzare x a 0 quando invece cominci il ciclo da 1 ?

Ah si è vero l'ho dimenticato a 0 perchè ho voluto fare delle prove