Hola muy buenas, he comenzado hace poco mi pequeña andadura por este lenguaje, y quise programar un sencillo juego de "los chinos", ese en el cual sacas un número y tienes que intuir cuantos sacarán los demás y acertar el resultado total.
El caso es que hay dos líneas en el código (línea 19 y 51) en las que aparece un -48, porque por algún motivo que se escapa a mi entendimiento, al introducir 1 y mostrar la variable que ha de contener ese 1, muestra un 49, y al hacer la prueba con un 2 el valor almacenado es 50. Esto me ha ocurrido en 2 líneas del código, y la verdad estaría muy agradecido si alguien pudiera decirme que está pasando.
Código C:
Ver original#include <stdio.h>
#include <stdlib.h>
int main(void){
int chin_jug, chin_pc1, chin_pc2, tot_chin, prediccion, error;
char continuar ='s';
do{
do{
printf("\nIntroduce el número de chinos que quieres usar\n(De 1 a 3)\n");
chin_jug
=getchar()-48; //Sin motivo aparente al realizar la entrada del número se suma 48
if(chin_jug>=0 && chin_jug<=3){
error = 0;
}else{
printf("\nHas introducido un número de chinos no válido\n\n"); error = 1;
}
}while(error==1);
//printf("\nseñor=%d\n", chin_jug);
printf("\nEl npc 1 está eligiendo su jugada\n"); printf("\nEl npc 2 está eligiendo su jugada\n"); // printf("\npc1=%d\n", chin_pc1);
// printf("\npc2=%d\n", chin_pc2);
tot_chin = (chin_jug + chin_pc1 + chin_pc2);
// printf("\ntotal=%d\n",tot_chin);
printf("\n¿Cuántos chinos hay en juego?\n");
prediccion
= getchar()-48;//Otra vez suma 48 al resultado sin motivo aparente
if(prediccion == tot_chin){
printf("\n¡Enhorabuena! has acertado, había %d chinos en juego\n", tot_chin
); }else{
printf("\n¡Fallaste! Había %d chinos en juego\n", tot_chin
); }
printf("\n¿Quieres jugar otra vez?\n\ns/n\n");
}while (continuar=='s');
}