PDA

View Full Version : [C] semplice ciclo do-while che non gira


tonystrong
31-08-2007, 13:32
Ciao a tutti... :mc: sono alle prese con un ciclo.. non capisco perchè non gira. vorrei acquisire in un array dei numeri e stampare l'array utilizzando un ciclo do-while e nello specifico utilizzare la condizione "diverso da !="

ecco lo stampato

#include<stdio.h>
main()
{
int a[50],i;

i=0;
do{
printf("Inserisci numero (0 per terminare): ");
scanf("%d",&a[i]);
fflush(stdin);
i++;
}while(a[i] != 999);
i++;
printf("\n\n");

for(i=0; a[i] != 0; i++)
printf("%d ",a[i]);

getchar();
}

il giro mi cicla fino ad inserire 4 numeri poi si interrompe.. dove sbaglio?

utilizzo dev-C

in attesa di risposta ringrazio vivamente in anticipo

e poi una piccola curiosità.. utilizzando il classico compilatore della borland non c'è bisogno di inserire ne "fflush(stdin)" e neanche "getchar()".
Domanda: il linguaggio C richiede queste istruzioni oppure è il compilatore dev-c che necessità di istruzzioni aggiuntive?

MEMon
31-08-2007, 13:53
perchè non stai controllando il valore dell'array che hai appena inserito, ma quello dopo, che visto che non è stato inserito, è "casuale".

In poche parole controlli uno spazio di memoria che contiene un valore non definito, quel che c'è c'è, e forse c'è 999

tonystrong
31-08-2007, 14:46
:cry: ho lette di salame sugli occhi.... ho capito l'errore e ora gira....grazie 1000