PDA

Visualizza la versione completa : [C] Conteggio valori inferiori ad una determinata soglia


Alessio86
19-09-2007, 15:55
//*Aggiunge 1 al contatore se il numero inserito da input e minore di soglia *//

#include "stdafx.h"


int main()

{
int contatore = 0;
int numero = 0;
int i, n;
int soglia;
char c;


do
{
printf ("Inserire il numero di quanti volori devi utilizare ");
scanf("%d",&n);
printf("Inserire il valore di soglia ");
scanf("%d",&soglia);

for (i=0; i<n; i++)
{
printf(" Inserire il valore N ");
scanf("%d",&numero);
printf("Il livello del contatore attuale e' di %d \n\n",contatore);

if (numero < soglia)
{
contatore = contatore + 1;

}

}
printf(" Il vallore di Contatore e' %d \n",contatore);
printf(" Vuoi continuare Y/N \n");
scanf("%c",&c);

}
while (c=='y' ||c=='Y');
return 0;
}




allora il problema in efetti sono due

1) Do While (che alla prima ripetizione funziona mentre, la secondavolta indifferentemente da Y/N termina)



2) La printf che mi mostra il contatore attuale non funziona come dovrebbe , perche se il l' IF risulta falsa tutto OK, ma se l' IF risulta vera il contatora si aggiorna ma il valore della printf viene aggiornato nell (i+1).
Mentre se sposto la printf dopo contatore=contatore+1, in caso di IF falso non mostra a video la Printf, ma solo se l' IF e falso meme posso fare




grazie 1000

labrosan
19-09-2007, 16:33
Sposta la printf dopo l'if e inserisci la riga while(!getchar()) prima dell'ultima scanf.
(di questo problema si Ŕ giÓ parlato molte volte)



for (i=0; i<n; i++)
{
printf(" Inserire il valore N ");
scanf("%d",&numero);

if (numero < soglia) // qui le parentesi non servono
contatore = contatore + 1;

printf("Il livello del contatore attuale e' di %d \n\n",contatore);

}

printf(" Il valore di Contatore e' %d \n",contatore);

while (!getchar());
printf(" Vuoi continuare Y/N \n");
scanf("%c",&c);

Alessio86
20-09-2007, 14:51
scusa ma il predicato del while dove lo metto rispetto al (!getchar());


?

Loading