fork download
  1. #include <stdio.h>
  2.  
  3. void muestra_resultado(int n, int digitos[])
  4. {
  5. printf( "\nPara: %d\n", n );
  6. for(int i = 0; i < 10; ++i) {
  7. if ( digitos[ i ] > 0 ) {
  8. printf( "%d aparece %d veces.\n", i, digitos[ i ] );
  9. }
  10. }
  11. printf( "\n" );
  12. }
  13.  
  14. void cuenta_ocurrencias_digitos(int n, int digitos[])
  15. {
  16. // Inicializa
  17. for(int i = 0; i < 10; ++i) {
  18. digitos[ i ] = 0;
  19. }
  20.  
  21. // Cuenta las ocurrencias
  22. n = abs( n );
  23. while( n > 0 ) {
  24. digitos[ n % 10 ] += 1;
  25. n /= 10;
  26. }
  27. }
  28.  
  29. int main(void)
  30. {
  31. int num;
  32. int digitos[10];
  33.  
  34. printf( "Dame un valor entero: " );
  35. scanf( "%d", &num );
  36.  
  37. cuenta_ocurrencias_digitos( num, digitos );
  38. muestra_resultado( num, digitos );
  39.  
  40. return 0;
  41. }
  42.  
Success #stdin #stdout 0s 9416KB
stdin
-424342
stdout
Dame un valor entero: 
Para: -424342
2 aparece 2 veces.
3 aparece 1 veces.
4 aparece 3 veces.