Mi problema es el siguiente: al ejecutar el programa mastermind, cuando introduzco el número y pulso "enter", me dice "mastermind.exe dejó de funcionar" y se finaliza.
No sé a que puede deberse la verdad, preferiría que no me diesen la solución sino más bien pistas o el bloque en el que se puede encontrar el problema. Como digo, mis conocimientos son muy básicos, solo he tocado esta librería y aún no he hecho funciones en C (solo sobre papel).
No he terminado la comparación de resultados porque incluso cuando introduzco el número correcto se sale, la terminaré cuando resuelva este problema primero.
Muchas gracias de antemano!!
Código:
Código:
#include<stdio.h> int d1, d2, d3, d4, a1, a2, a3, a4, intentos=10, aciertos=0, posicion=0, num, resto; int main(void){ srand(time(NULL)); //Genera digitos aleatorios diferentes entre si, el primero distinto de 0// a1=1+rand()%9; do{ a2=rand()%10; }while(a2==a1); do{ a3=rand()%10; }while(a3==a1||a3==a2); do{ a4=rand()%10; }while(a4==a1||a4==a2||a4==a3); //notacion para saber el numero y comprobar resultados// printf("%d%d%d%d\n\n", a1, a2, a3, a4); //inicializacion de variables, entrada de datos y descomposicion del numero para comparar digito por digito.// //Bucle hasta que me quede sin intentos o acierte los 4 digitos// do{ posicion=0; aciertos=0; printf("numero: "); scanf_s("%d", num); d1=num/1000; resto=num%1000; d2=resto/100; resto=resto%100; d3=resto/10; d4=resto%10; //comparacion de resultados// if(d1==a1&&d2==a2&&d3==a3&&d4==a4){ posicion=4; aciertos=4; } if(d1==a2||d1==a3||d1==a4){ aciertos++; } . . . printf(" te quedan %d intentos: ",intentos); printf("en posicion %d: ", posicion); printf("aciertos %d: ", aciertos); intentos--; }while(intentos<0&&posicion>4); if(posicion==4){ printf("has ganado!"); } getch(); return 0; }