Newsgroup: it.comp.lang.c
Titolo: Aiuto per semplice programma

Sono agli inizi e mi sfugge il perché eseguendo questo semplice programma
per trovare il numero massimo e minimo all' interno di un array ho risultati
diversi per:
----------------------------------------------------------------------------
-----------
#include <stdio.h>
#define MAX 100
int cont, num_inseriti, massimo, minimo;
int numero;
int array[100];
int main ()
{
    do
      {
        printf ("inserire numero = ");
        scanf ("%d", &numero);
        array[cont] = numero;
        cont++;
      } while (cont < MAX && numero != 0);
num_inseriti = cont;
massimo = -32000;
minimo = 32000;
for (cont = 0; cont <= num_inseriti && array[cont] != 0; cont++)
  {
    if (array[cont] > massimo)
      {
        massimo = array[cont];
      }
    if (array[cont] < minimo)
      {
        minimo = array[cont];
      }
  }
  printf ("\nMassimo = %d", massimo);
  printf ("\nMinimo = %d", minimo);
getchar ();
getchar ();
return 0;
}
----------------------------------------------------------------------------
-----------
Questo sopra è il codice che non mi da problemi ma se sostituisco il ciclo
do...while con:
----------------------------------------------------------------------------
-----------
cont = 0;
    while (cont < MAX && numero != 0);
      {
        printf ("inserire numero ");
        scanf ("%d", &numero);
        array[cont] = numero;
        cont++;
      }
----------------------------------------------------------------------------
-----------
Riesco ad inserire solo il primo numero. Ma se cont è minore di MAX e
diverso da 0 perchè il ciclo non si ripete ?

 for (cont = 0; cont <= num_inseriti && array[cont] != 0; cont++)
for (cont = 0; cont < num_inseriti && array[cont] != 0; cont++)
-- 
Gerolamo

       }
Ciao

Il motivo per cui non ti funziona è molto semplice: nella riga  while non
devi mettere il punto e virgola. Mettendo il punto e virgola il corpo del
blocco while finisce nella stessa riga dove inizia . Non è quello che pensi
racchiuso tra le parentisi graffe. Tra l'altro nella condizione while entri
con la variabile "numero" non esplicitamente inizializzata, e pertanto
inizializzata in automatico a zero perchè trattasi di variabile globale, per
cui il corpo del blocco while non viene eseguito neanche una volta ( e non
come pensi tu che venga eseguito solo la prima). Spero sia chiaRO.
Ciao
"IndieAlex" <indieale...@TOGLIMIvirgilio.it> ha scritto nel messaggio
news:AMVcb.124788$hE5.4...@news1.tin.it...


 come pensi tu che venga eseguito solo la prima). Spero sia chiaRO.
tu hai bevuto o non sai programmare ...
il do while si fa cosi' come lo ha scritto !!! se non ci credi vai sul manuale o 
leggiti lo standard ( ed abbassa il gomito l'alcol ti fa male !!!)
bie bie ...

leggiti lo standard ( ed abbassa il gomito l'alcol ti fa male !!!)
   Il primo esempio funziona (per dichiarazione dell'OP, io non lo ho
provato), leggiti bene il secondo (quello che, sempre per
dichiarazione dell'OP, non funziona) e ricrediti sui tassi alcolici :)
-- 
S.L.


ah ops scusa ... non lo avevo visto ... avevo letto solo un while guardando di 
sfuggita ... :-\
chiedo venia ... mi inginocchio sui ceci ...
ciao