Progtwig para encontrar la sum de dígitos.

No puedo resolver el problema en esto:

#include int main() { int a,b,count ; count =0; printf("enter the value for a "); scanf("%d ",&a); while(a>0) { b=a%10; count=b+count; a=a/10; printf ("hence the simplified result is %d",count); } return 0; } 

Hay un asesino silencioso en tu código:

 scanf("%d ",&a); 

El espacio adicional en su scanf hará que sea más difícil ingresar números: esto coincidirá con 12 , pero no 12 . Reemplace el "%d " con "%d" .

No termina su printf() con un “\ n”. El flujo de salida (stdout) es, generalmente, el búfer de línea. Esto significa que no es necesario imprimir líneas incompletas a menos que las fuerce con fflush() . Pero no hay necesidad de eso.

Simplemente añada un “\ n” a su printf()

  printf("hence the simplified result is %d\n", count); 

Un problema es que imprime el recuento con cada bucle, en lugar de hacerlo después del bucle.

No es un problema, pero C tiene operadores de asignación aritmética (también conocida como asignación compuesta ) que pueden ser más legibles. Por ejemplo, a /= 10 es equivalente a a = a/10 .

Creo que la sentencia printf debería estar fuera del bucle.

Mueva el printf fuera del bucle. Eso lo arreglará.

Intenta lo siguiente:

 #include int main() { int a,b,count ; count =0; printf("enter the value for a "); scanf("%d",&a); while(a>0) { b=a%10; count=b+count; a=a/10; } printf ("hence the simplified result is %d",count); return 0; }