[C]condizione uscita del DO WHILE

frab1
sto scrivendo del codice che sulla base di due valori forniti da utente ( A e B), setta tali valori come estremi di un intervallo [A,B] e continua ad acquisire interi finche' il valore inserito non esce dagli intervalli...
ho problemi con la condizione di uscita, quella del WHILE, nel senso che continua l'acquisizione qualsiasi sia l'intero inserito, mentre se inserisco un carattere esce correttamente.
int main(void)
{
	int A,B,n=0;
	int totale=0;
	int vettore[100];
//	float sum;
//	float media;
	printf("Inserire gli estremi dell'intervallo [A,B]:\n");
	scanf("%d %d",&A,&B);
	printf("Estremo basso:%d\n",A);
	printf("Estremo alto:%d\n",B);
	do{
		printf("Inserire intero:\n");
		for (n=0;n<100;n++){	
			scanf("%d",&vettore[n]);
		}
	} while (vettore[n]<A && vettore[n]>B);
}
.

Risposte
apatriarca
L'errore nel tuo codice è l'uso di un ciclo for all'interno del ciclo while.. Non hai bisogno di un array e non è chiaro perché leggi 100 valori uno dopo l'altro.

frab1
ho usato l'array perche' poi di tutti i valori letti da tastiera, e compresi nell'intervallo, devo fare la media..e non saprei altro modo se non inserire i valori letti in un array. Ho dichiarato io un vettore di 100 spazi perchè sia sufficientemente grande, poichè non so il numero di valori che andrò ad inserire..

apatriarca
Per calcolare una media hai bisogno solo della somma e del numero di elementi. Non hai bisogno di memorizzarti tutti i valori in un array.

frab1
è ma se non uso l'array come faccio a sapere quanti numeri ho immesso e quali siano i loro valori? Con dei contatori?

apatriarca
Sì, certo.. Usando un contatore per contare i numeri e un accumulatore che conterrà la somma dei numeri ottenuti fino a questo punto.

frab1
provo a sistemarlo!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.