Trovare il minimoin un insieme di valori in linguaggio C

Pubblicità

Tonyfrancone

Nuovo Utente
Messaggi
6
Reazioni
0
Punteggio
25
Salve ragazzi sono nuovo del sito e vorrei sapere da voi che sicuramente siete più ferrati di me se potreste risolvermi gentilmente questo semplice programma in linguaggio C. Vi invio anche il mio codice sorgente così vi è tutto più facile:

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[])
{int valori, numero, minimo, contatore;


contatore = 1;
valori = 0;
minimo= 0;


printf ("Questo programma permette di trovare il valore piu' piccolo tra quelli inseriti.\nInserisca il totale dei valori da verificare: ");
scanf (" %d", &valori);


for (contatore = 1; contatore <= valori; ++contatore)
{ printf ("Inserisci un numero: ");


scanf ("%d", &numero);


numero = minimo;
if ( numero < minimo)
{numero = minimo;}


}


printf ("Il minimo tra questi valori e': %d.\n", minimo);



system("PAUSE");
return 0;
}

Con questo codice sorgente posso inserire i numeri e tutto, solo che nell'ultimo printf mi dice sempre il minimo tra questi valori e' 0.

HELP ME! :'(
 
Ci sono 2 errori e 1 obbrobrio:
- se l'input lo memorizzi nella variabile "numero", perchè poi assegni "minimo" a "numero"? E' il contrario.
- il primo assegnamento, che è "minimo = numero", lo fai all'esterno del ciclo. Il primo valore della lista lo acquisisci prima del ciclo for.
- System("PAUSE") non va usato, non è programmazione. Usa piuttosto uno scanf su una qualsiasi variabile che non ti serve più.

Codice:
if (valori > 0){
   scanf ("%d", &numero);
   minimo = numero;
}
for (contatore = 1; contatore < valori; contatore++){
   scanf ("%d", &numero);
   if (numero < minimo)
      minimo = numero;
}
 
numero = minimo;
if ( numero < minimo)
{numero = minimo;}


Questo if non è mai verificato, semplicemente perchè così numero è sempre = a minimo e mai minore.
Ah, ecco valore sarà sempre = a 0 perchè 0 è il valore con cui hai indicizzato minimo.
 
Ultima modifica:
Se imposta come minimo 0 e poi mette tutti numeri maggiori di zero mi sembra alquanto ovvio che il risultato sia zero. Diciamo che con tutti i numeri positivi il programma darà come risultato zero
 
Pubblicità
Pubblicità
Indietro
Top