Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema al programar el mastermind

Estas en el tema de Problema al programar el mastermind en el foro de C/C++ en Foros del Web. el problema es que al acabar el programa se ejecuta la consola a la perfección, no da warnings ni fallos, pero no realiza ninguna de ...
  #1 (permalink)  
Antiguo 22/11/2010, 14:27
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema al programar el mastermind

el problema es que al acabar el programa se ejecuta la consola a la perfección, no da warnings ni fallos, pero no realiza ninguna de las acciones solicitadas y al finalizar en vez de devolverme el 0 me devuelve :

-1073741819 <0xC0000005>


el programa es el siguiente:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 8
#define min 4

void azar(int dificultad, float solucion[MAX])
{
int i;
for(i=0;i<dificultad;i++) //generamos el numero al azar
//lo dividimos entre 9 y le sumamos 1
//de forma que nos quedan numeros
{ srand (time(NULL)); //entre el 1 y el 9
solucion[i]=(rand()%9)+1;
}
}
int seleccione_dificultad()
{
int dificultad;//funcion para pedir la dificultad al usuario

do
{
printf("Introduce la dificultad(menor que %i y mayor que %i): ", MAX,min);
scanf("%i", &dificultad);
}
while ((dificultad < min) || (dificultad > MAX));
return dificultad;
}

void pedir_solucion(float numeros[MAX], int dificil)
{//funcion para pedir al usuario su posible solucion
int i;

for (i = 0;i<dificil; i++)
{
printf("Introduce el elemento de la posicion %i: ", i);
scanf("%f", &numeros[i]);
}
}
int correcionposicion(float numeros[MAX],float solucion[MAX],int dificultad)
{ int i,j,flag;//funcion para comprobar si hay numeros bien colocados

for(i=0,flag=0;i<dificultad;i++)
{
if (numeros[i]==solucion[i])
{
flag++;
}
else
{
flag=flag;
}
}
return flag;
}


int correcionsuma(float solucion[MAX],float numeros[MAX], int dificultad)
{ int i,j,k,flag;//Funcion para comprobar si el numero esta en la solucion

flag=0;
for (i=0;i<dificultad;i++)
{
for(j=0;j<=i;j++)
{
if (numeros[i]!=numeros[j])
{
for (k=0;k<dificultad;k++)
{
if (numeros[i]==solucion[k])
{
flag++;
}
else
{
flag=flag;
}
}

}
else
{
if(i=0)
{
if (numeros[i]==solucion[k])
{
flag++;
}
else
{
flag=flag;
}
}
else
{
flag=flag;
}
}

}
}

return flag;
}

int main()
{
float numeros[MAX],solucion[MAX];
int dificultad,i,respuestaposicion,respuestasuma,inten tos;

azar(dificultad,solucion);
dificultad=seleccione_dificultad();
pedir_solucion(numeros,dificultad);

intentos=3*dificultad;
for(i=0;i<intentos;i++)
{
respuestasuma=correcionsuma(numeros,solucion,dific ultad);
respuestaposicion=correcionposicion(numeros,soluci on,dificultad);


if (respuestaposicion!=dificultad)
{
printf("Has fallado. Has acertado %d, de los cuales %d están en su sitio",respuestasuma,respuestaposicion);
}
else
{
break;
}
}
if(respuestaposicion==dificultad)
{
printf("Has ganado en %d movimientos.",i);
}
else
{
printf("HAS PERDIDO");
}
return 0;
}
  #2 (permalink)  
Antiguo 22/11/2010, 14:49
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema al programar el mastermind

Mira para empezar en el main, al principio de todos deberias, primero pedir la dificultad y luego llamar a la funcion AZAR.

Etiquetas: programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:47.