Cita:
Iniciado por aguml Es culpa tuya. El carácter % su valor entero es 37 y entra en el rango válido. Lo que debes hacer es usar un char* y luego usas isdigit o atoi y si no es un número lo sabrás por el retorno de esas funciones.
37 no está incluído en el rango de valores que puede tomar b, sí a, pero luego este se suma a otro y 37 no es una posible solución