Salve a tutti, qui di seguito è riportato il mio programma in C che dovrebbe generare delle operazioni a caso + - * / e vedere se il risultato dato dall'utente è giusto; nella compilazione con dev c++ non mi da errori ma quando faccio partire l'eseguibile mi si impalla e Windows 7 cerca una soluzione del problema e poi me lo fa chiudere senza avere trovato una possibile soluzione; non capisco quale sia il problema con altri programmi l'eseguibile mi parte quindi penso che sia circoscritto a questo programma.
[/CODE]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <string.h>
int main()
{
char c[]={'+','-','*','/','\0'},risp;
int a=0,b=0,x=0;
float risultato=0;
do{
system("cls");
//generazione casuale dei operatori
srand((unsigned) time(NULL));
x=rand()/(RAND_MAX*3);
a=(rand()/(RAND_MAX*10)+1);
b=(rand()/(RAND_MAX*10)+1);
printf("%d %s %d =",a,c[x],b);
scanf("%f",&risultato);
do{
//Controllo se il risultato è uguale a quello inserito dall'utente
if(x==0&&risultato==a+b){
printf("\nComplimenti il risultato %0.2f corretto!!!",risultato);
_getch();
break;
}
if(x==1&&risultato==a-b){
printf("\nComplimenti il risultato %0.2f corretto!!!",risultato);
_getch();
break;
}
if(x==2&&risultato==a*b){
printf("\nComplimenti il risultato %0.2f corretto!!!",risultato);
_getch();
break;
}
if(x==3&&risultato==a/b){
printf("\nComplimenti il risultato %0.2f corretto!!!",risultato);
_getch();
break;
}
else{
printf("\nRisultato errato");
_getch();
break;
}
}while(1);
printf("\n\nVuoi continuarre premi si o no");
risp=_getch();
}while(risp=='s'||risp=='S');
return 0;
}
[\CODE]