saludos estoy haciendo un programa que me tiene que:
generar 5 operaciones aritmeticas aleatorias, los números (aleatorios) deben estar comprendidos entre 10 y 1, y las operaciones deberán ser suma, resta multiplicación, división (en el caso de la división se realizará siempre una división entera y el primer número tendrá que ser mayor que el segundo) al final imprimir el número de aciertos t la calificación
pero el problema es que no me da bien el número de los aciertos, no se si es porque tengo muchos ifs anidados o porque no me calcula bien las operaciones que dan resultados negativos como:
5-7 =-2
de antemano gracias por sus respuestas
generar 5 operaciones aritmeticas aleatorias, los números (aleatorios) deben estar comprendidos entre 10 y 1, y las operaciones deberán ser suma, resta multiplicación, división (en el caso de la división se realizará siempre una división entera y el primer número tendrá que ser mayor que el segundo) al final imprimir el número de aciertos t la calificación
pero el problema es que no me da bien el número de los aciertos, no se si es porque tengo muchos ifs anidados o porque no me calcula bien las operaciones que dan resultados negativos como:
5-7 =-2
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define OPERACIONES 5
int main()
{
int i,numero1,numero2,respuesta,resultado,aciertos=0;
char operacion;
srand(time(NULL));
for(i=0;i<OPERACIONES;i++)
{
numero1 = rand()% 11+1;
numero2 = rand()% 11+1;
operacion = rand()% 6+42;
if(operacion==42||operacion==43||operacion==45||operacion==47)
{
if(operacion==47)
{
if(numero2>numero1)
{
printf("%d %c %d = ",numero2,operacion,numero1);
scanf("%d",&respuesta);
resultado = numero2/numero1;
}
else
{
printf("%d %c %d = ",numero1,operacion,numero2);
scanf("%d",&respuesta);
resultado = numero1/numero2;
}
}
else
{
if(operacion==42)
{
printf("%d %c %d = ",numero1,operacion,numero2);
scanf("%d",&respuesta);
resultado=numero1*numero2;
}
else if(operacion==43)
{
printf("%d %c %d = ",numero1,operacion,numero2);
scanf("%d",&respuesta);
resultado=numero1+numero2;
}
else if(operacion==45)
{
printf("%d %c %d = ",numero1,operacion,numero2);
scanf("%d",&respuesta);
resultado=numero1+numero2;
}
}
if(respuesta==resultado)
aciertos++;
}
else
i--;
}
printf("\nTuviste %d aciertos, tu calificacion es %d\n",aciertos,aciertos*20);
return 0;
}
de antemano gracias por sus respuestas