Salve ragazzi sono pascal88, mi sto scervellando nel capire un piccolo particolare
#include <stdio.h>
#include <stdlib.h>
int main()
{
int risposta ; // Dichiaro la variabile
const int risposta_c = 10; // Dichiaro la Costante
do //Ciclo do , per eseguire prima l'istruzione che se è vera termina altrimenti riparte
{
printf("Quale è il logaritmo di 2 in base 1024? \n");
scanf("%d",&risposta); // Assegno il valore immesso alla variabile
if (risposta==risposta_c)// Ciclo if
{
printf("risposta corretta! \n");
}
else {
printf("risposta errata , riprova! \n");
}
}
while (risposta!=risposta_c); //istruzione while che fa ripartire l'algoritmo
}
Con questo codice quando eseguo il programma va tutto bene, inserisco il valore 10 ed il programma termina, se inserisco un valore diverso riparte scanf e devo inserire un altro valore.
Se al posto di != metto, <=, == oppure qualsiasi altro operatore, quando inserisco 10 (cioè il valore corretto) il programma riparte di nuovo da scanf e stranamente non termina . Mi spiegato il concetto bene? grazie a tutti in anticipo.