cuestionario en c

Iniciado por cinquleur, 16 Agosto 2013, 03:41 AM

0 Miembros y 1 Visitante están viendo este tema.

cinquleur

buenas tardes, estoy elaborando un programa que tiene varias opciones, una de ellas ejecuta un examen que el usuario debe responder correctamente cada pregunta añade +1 a acumulador y si equivoca se le sumara +1 a error, asi al final del examen se hace la operación acumulador=acumulador-errores asi te daria la calificacion.

Mi problema es que siempre me da 0, no suma ni resta y se salta preguntas y lo he revisado muchas veces y no encuentro el error, les anexo una parte del codigo


int juego (char a, char b,char c,char r,int error,int acum)
{
acum=0;
error=0;
clrscr();
gotoxy(1,10);cprintf("1)cual es el comando que nos permite acceder al modo privilegiado?");
gotoxy(15,12);cprintf("a)router#config terminal       b)router>enable");
scanf("%c",&r);
if((r!=b))
{
error=error+1;
}
acum=acum+1;

clrscr();
gotoxy(1,10);cprintf("2)el comando config terminal es para entrar al modo configuracion ?");
gotoxy(15,12);cprintf("a)verdadero      b)falso ");
scanf("%c",&r);
if((r!=a))
{
error=error+1;
}
acum=acum+1;

clrscr();
gotoxy(1,10);cprintf("3)cual es el comando para ver la configuracion actual del router ");
gotoxy(15,12);cprintf("a)show running-config     b) show interface brief   c)show ip route");
scanf("%c",&r);
if((r!=a))
{
error=error+1;



(...)

acum=acum-error;

if((acum>=6))
{
clrscr();
cprintf("tu total del examen es %f",acum);
gotoxy(1,10);cprintf("FELICIDADES!!! APROBASTE EL EXAMEN!!! AHORA LITTLE MAC PODRA SEGUIR SU CAMINO COMO INGENIERO");
gotoxy(15,12);cprintf("PRESIONA ENTER PARA VOLVER AL MENU ");

}
else
clrscr();
cprintf("tu total del examen es %f",acum);
gotoxy(3,10);cprintf("BUENO... SIEMPRE SE PUEDE INTENTAR EL SIGUIENTE SEMESTRE, ");

gotoxy(15,12);cprintf("PRESIONA ENTER PARA VOLVER AL MENU ");
getch();
getch();



noalg

Bueno no yltengo mucho tiempo, pero he visto este error:
Código (cpp) [Seleccionar]
if((r!=b))
{
error=error+1;
}
acum=acum+1;

Estas haciendo un if simple, es decir si se cumple la condicion se sumara 1 a error, pero tamboen se sumara 1 a acum
Deberias hacer algo asi.
Código (cpp) [Seleccionar]
if(r==b) {acum++; } else {error++;}


Otra cosa que veo es que pones como parametros los char a,b y c. Si les vas a pasar sus respectivas letras deberias ponerlas como constantes, o declararlas dentro de las funcion.
::¿*¿---//&$#\\---▶{}◀---//#$&\\---?*?::


¡¡¡NO PINCHES AQUI SI NO QUIERES INFECTARTE CON UN VIRUS!!!