Dark Pallacus escribió:El tercero me ha costado, eh!
Hablando de terceros... Está bien, pero
- Ya que vas a comparar tantas veces la suma, crea una variable y asígnale la suma, luego simplemente compara esa variable. Así evitas tener que calcular la suma siempre (que hace que el programa vaya más lento). Por ejemplo en el while la suma se calcularía de nuevo por cada pase del bucle.
- if (contador % 2 == 0) es una división por cada pase del bucle. Encuentra una forma mejor de hacerlo, es muy fácil sacar todos los números pares hasta uno dado sin comprobar uno por uno
- Si haces lo anterior te darás cuenta de los 2 bucles while son muy parecidos, si no idénticos. Deja sólo uno de ellos.
Dark Pallacus escribió:Y el cuarto.
Demasiado largo comprobar tooodos los números si son divisbles hasta llegar al número primo. Intenta recorrer menos números.
Dark Pallacus escribió:Y el último: Probadlo que os vais a reír.
Está bien y me gusta el concepto de la forma en que sales de los bucles while cuando una condición es cierta, pero un código más legible sugiere usar otra variable (y esto aplica al problema anterior también), tal que:
Código: Seleccionar todo
int encontrado = 0;
while (turno <= 5 && !encontrado)
{
printf("\n %s cual crees que es el numero que ha elegido %s? ", jugador_2, jugador_1);
scanf(" %d", &numero_2);
if (numero_2 == clave_secreta)
{
printf("\n Felicidades! Eres telequinesico!");
encontrado = 1;
}
}
A lo mejor he obviado en las lecciones que en C 0 es falso y cualquier otro número es verdadero.
También deberías usar un switch y no un if-else al final, es más limpio y más legible (y para eso se inventó

Suerte y a por ello
