#include <stdio.h>
void muestra_resultado(int n, int digitos[])
{
for(int i = 0; i < 10; ++i) {
if ( digitos[ i ] > 0 ) {
printf( "%d aparece %d veces.\n", i
, digitos
[ i
] ); }
}
}
void cuenta_ocurrencias_digitos(int n, int digitos[])
{
// Inicializa
for(int i = 0; i < 10; ++i) {
digitos[ i ] = 0;
}
// Cuenta las ocurrencias
while( n > 0 ) {
digitos[ n % 10 ] += 1;
n /= 10;
}
}
int main(void)
{
int num;
int digitos[10];
printf( "Dame un valor entero: " );
cuenta_ocurrencias_digitos( num, digitos );
muestra_resultado( num, digitos );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIG11ZXN0cmFfcmVzdWx0YWRvKGludCBuLCBpbnQgZGlnaXRvc1tdKQp7CglwcmludGYoICJcblBhcmE6ICVkXG4iLCBuICk7Cglmb3IoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgewoJCWlmICggZGlnaXRvc1sgaSBdID4gMCApIHsKCQkJcHJpbnRmKCAiJWQgYXBhcmVjZSAlZCB2ZWNlcy5cbiIsIGksIGRpZ2l0b3NbIGkgXSApOwoJCX0KCX0KCXByaW50ZiggIlxuIiApOwp9Cgp2b2lkIGN1ZW50YV9vY3VycmVuY2lhc19kaWdpdG9zKGludCBuLCBpbnQgZGlnaXRvc1tdKQp7CgkvLyBJbmljaWFsaXphCglmb3IoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgewoJCWRpZ2l0b3NbIGkgXSA9IDA7Cgl9CgkKCS8vIEN1ZW50YSBsYXMgb2N1cnJlbmNpYXMKCW4gPSBhYnMoIG4gKTsKCXdoaWxlKCBuID4gMCApIHsKCQlkaWdpdG9zWyBuICUgMTAgXSArPSAxOwoJCW4gLz0gMTA7Cgl9Cn0KCmludCBtYWluKHZvaWQpCnsKCWludCBudW07CglpbnQgZGlnaXRvc1sxMF07CgkKCXByaW50ZiggIkRhbWUgdW4gdmFsb3IgZW50ZXJvOiAiICk7CglzY2FuZiggIiVkIiwgJm51bSApOwoJCgljdWVudGFfb2N1cnJlbmNpYXNfZGlnaXRvcyggbnVtLCBkaWdpdG9zICk7CgltdWVzdHJhX3Jlc3VsdGFkbyggbnVtLCBkaWdpdG9zICk7CgkKCXJldHVybiAwOwp9Cg==