PDA

View Full Version : [C++] dubbio su ciclo do-while


lore11
12-07-2015, 15:33
sto facendo delle simulazioni d'esame (in C++) e non riesco a capire come fare un esercizio.
l'esercizio dovrebbe leggere 10 interi e metterli in un array, controllando però che nelle posizioni pari vengano inseriti valori pari, e nelle posizioni dispari valori dispari (l'esercizio va avanti, ma il mio problema è solo su questa parte).
ho realizzato questo:
for (i=0; i<dim; i++) {
if (i%2==0) {
do {
printf ("inserire un valore pari per la posizione %d", i);
scanf ("%d", A[i]);
}
while (A[i]%2!=0);
}
else {
do {
printf ("inserire un valore dispari per la posizione %d", i);
scanf ("%d", A[i]);
}
while (A[i]%2==0);
}
}

solo che eseguo il programma, inserisco un valore (pari o dispari indifferentemente) e il programma crasha.

dove sbaglio??

grazie mille a tutti

gianmpu
12-07-2015, 15:48
Il problema è che la scanf come secondo parametro del prototipo non vuole un valore numerico ma un riferimento, cioè, facendola semplice, l'indirizzo della variabile in cui mettere la lettura. Ad esempio, puoi avere qualcosa del tipo
int numero;
printf("Scrivi un numero");
scanf("%d",&numero)
Se, come penso, hai dichiarato A come vettore di interi, puoi adattare questo esempio al tuo caso ;)

lore11
12-07-2015, 16:12
non ci credoooo! giuro che quando mi sono accorto di aver messo solo il nome della variabile, senza & per assegnare il valore, ci sono rimasto male! è da un'ora che ragionavo su tutto tranne che su una cosa così stupida!

giuro che è una cosa che sapevo! :muro: :muro:

comunque grazie mille..senza di te avrei perso (se va bene) un'altra ora!

buona giornata!

gianmpu
12-07-2015, 21:21
Di nulla. Gli errori più stupidi di solito sono quelli più difficili da trovare proprio perchè riguardano cose semplici a cui di solito non si pensa (soprattutto quando si inizia a programmare)

Inviato dal mio GT-N5100 utilizzando Tapatalk