Programación en C++: problemas de números misteriosos
No hay ningún problema con el siguiente bucle, pero su matriz A declara char a[4] y los datos leídos con cin son todos datos de tipo char. Si multiplicas el código ASCII de char por 1000, los datos deben ser incorrectos.
Entonces esta matriz de caracteres todavía se usa como un número entero en el bucle, lo cual obviamente es incorrecto.
Cambie la parte de la declaración a:
int N, b, c, I, j, m, x
int a[4]; Declare la matriz de bucle como int.
Entrada de caracteres[4]; //Utiliza una matriz de caracteres para recibir la entrada del teclado.
cout & lt& lt"Ingrese un número de 4 dígitos (excepto si los 4 dígitos son el mismo número):"
CIN & gt;& gtEnter;
x=1000*(Entrada[0]--0 ')+100 *(Entrada[1]--0 ')+10 *(Entrada[2]--0 ')+(Entrada[3] - -0 ');
//Reste "0" de cada bit aquí para obtener el número entero correspondiente.
Espero que puedas cambiarlo así. En cuanto a ese misterioso número, equivale a 6174.