DOMANDA DI CHIARIMENTO SU CICLO WHILE

di il
2 risposte

DOMANDA DI CHIARIMENTO SU CICLO WHILE

Ciao a tutti

avrei bisogno di un chiarimento sulle variabili utilizzate per il ciclo while, da quello che ho capito non posso utilizzare una variabile di tipo float per fare un confronto es:

float x;

x=0;

while(x!=-1){istruzioni......} giusto?

ma posso invece scrivere while(x>-1){istruzioni....}?

oltre a questo quello che volevo sapere perchè non è possibile fare un confronto con variabili float?

2 Risposte

  • Re: DOMANDA DI CHIARIMENTO SU CICLO WHILE

    non posso utilizzare una variabile di tipo float per fare un confronto
    puoi farlo, ma devi stare attento perchè perchè float e double soffrono di arrotondamenti (quindi un test di uguaglianza è molto pericoloso)
    ma posso invece scrivere while(x>-1){istruzioni....}?
    anche questo puoi farlo e non è pericoloso come un test di uguaglianza
    perchè non è possibile fare un confronto con variabili float?
    Ripeto: con float e double puoi fare tutti i confronti che vuoi ma stai attento all'uguaglianza in quanto potrebbero capitare errori di arrotondamento che ti fanno fallire il test quando invece ti aspetti che restituisca true.
  • Re: DOMANDA DI CHIARIMENTO SU CICLO WHILE

    Grazie mille candaluar,

    quindi se ho capito bene , è pericoso se dovessi fare una somma,divisione etc.. tra una variabile di tipo float e una di tipo int, in questo caso fare una cosa del genere:

    float a,b;
    int c;

    a=0;
    while(a!=-1){

    printf("inserisci a -1 per terminare");
    scanf("%f",&a);

    printf("inserisci c");
    scanf("%d",&c);
    b=(float)c*a;

    printf("risultato: %f",b);
    }
    evito il rischio di arrotondamento ?
Devi accedere o registrarti per scrivere nel forum
2 risposte