Red de conocimiento informático - Espacio del host - ¿En qué me equivoqué con mi programación (lenguaje c)? Un dígito y dos dígitos están bien, pero una vez que se ingresan más de tres dígitos, no se pueden generar.

¿En qué me equivoqué con mi programación (lenguaje c)? Un dígito y dos dígitos están bien, pero una vez que se ingresan más de tres dígitos, no se pueden generar.

El algoritmo de tu programa es correcto, pero hay dos problemas al calcular el número de dígitos en el valor de entrada.

El procedimiento corregido es el siguiente (ver comentarios para cambios)

#include lt;stdio.hgt;

#include lt;stdlib.hgt;

p>

int main(){ int a, b, c, d, i=1, u, s=0, k=1, j, p("dd", amp; ; a, amp; b ); u=a;//Agregue una oración aquí para asignar un valor a u while (ugt;=10){ u=u/10;//Cambie u=a/10 aquí a u= u/10 i=i 1 ; } para(p=1;plt;=i;p){ c=a10; d=b10; a=(a-c)/10; c d)10; s=k *j; k=k*10; } printf("d", s);