Programación General => C/C++ => Mensaje iniciado por: wiki_wiki en Jueves 8 de Mayo de 2008, 23:57
Título: Problemas Con El Mastermind
Publicado por: wiki_wiki en Jueves 8 de Mayo de 2008, 23:57
Hola chicos! soy nueva por aqui , venia en busca de informacion y ayuda ya que soy novata en el lenguaje de programacion C++ . Bueno me han mandado hacer un mastermind con 4 numeros que no pueden repetirse, y el problema es que me compila mal y no veo el error, este apartado pide que el ordenador saqueun numero aleatorio sin repeirse caracteres y luego tu trates de adivinarlo, despues me han mandado hacer la parte inversa , es decir yo meto un numero en el ordenador y el ordenador tiene que adivinarlo y en esta parte si que no tengo ni idea, si a alguien se le ocurre algo seria de agradecer, muchas gracias!
1º/apartado:
#include <stdio.h> #define N 4
int error (char cadena[N]) { int i, j; for (i=0; i<N; i++) {
int desordenados_ (char propuesta[N], char clave[N]) { int i, j, desordenados=0; for (i=0; i<N; i++) for (j=0; j<N; j++) if (clave==propuesta[j] && i!=j) desordenados++; if (desordenados) printf("Hay %d numeros desordenados en la clave.\n", desordenados++); //else printf("No hay numeros desordenados en la clave.\n"); return desordenados; }
int aciertos_ (char propuesta[N], char clave[N]) { int i, aciertos=0; for (i=0; i<N; i++) if (clave==propuesta) aciertos++; if (aciertos) printf("Hay %d numeros correctos en la clave.\n", aciertos); else printf("Ningun numero introducido pertenece a la clave.\n"); return aciertos; }
int main() { char cl[N], pr[N]; int i, aciertos, desordenados;
do { printf("Escribe la clave que se ha de adivinar (4 numeros): "); gets(cl); if(cl[N]>4) printf("La clave es de 4 digitos.\nIntentalo otra vez.\n"); } while (error(cl)); printf("\n\n");
while (aciertos!=4) { do { printf("\nEscribe tu propuesta: "); gets(pr); } while (error(pr)); desordenados=desordenados_(pr, cl); aciertos=aciertos_(pr, cl); }
if (aciertos==4) printf("\nAcertaste!\n"); return 0; }
Título: Re: Problemas Con El Mastermind
Publicado por: Leber en Viernes 9 de Mayo de 2008, 00:14
A mi me compila bien( uso gcc), lo unico da un warning por la funcion gets( es bastante insegura esta funcion).
Código: Text
gcc foro.c -o foro
/tmp/ccqKN9zq.o: In function `main':
foro.c:(.text+0x1d8): warning: the `gets' function is dangerous and should not be used.
Título: Re: Problemas Con El Mastermind
Publicado por: wiki_wiki en Viernes 9 de Mayo de 2008, 00:38
pero si le metes el numero correcto te dice que esta bien?? porque a mi no me dice nunca que el numero esta bien, gracias d enuevo