ayuda / algoritmo para calcular el numero de veces que una cifra se repite

Iniciado por emanuek, 25 Mayo 2017, 22:38 PM

0 Miembros y 1 Visitante están viendo este tema.

emanuek

Cita de: NEBIRE en 25 Mayo 2017, 23:28 PM
Te lo he puesto en pseudocodigo...

bucle Mientras ---> es el bucle While
#include<iostream>
using namespace std;
main()
{
    int valor,cifra;
    cin>>valor;
    while(valor>0)
    {cifra=valor/10;
    cifra=cifra+1;
    valor=valor/10;
    if(valor<10)
    {valor=valor+1
        valor=-1;}

    }
}
y luego?

Serapis

No, tu implementación del código, no es correcta...
- Dónde está el array?.
- Dónde está la línea: Cifra = (valor módulo 10) ... 'C' tiene un operador llamado módulo, no lo conoces????.
- Dónde ves que incremente 'cifra'?
..lo que se incrementa es el enésimo indice (cuyo valor se recoge en 'cifra') en el array. MiArray(x) +=1 ...dónde x, es el índice, al mismo tiempo que la cifra recién hallada, por eso sirve de índice: MiArray(cifra) +=1
El mismo error lo vuelves a cometer dentro del condicional: valor=valor+1
Si no entiendes lo que está sucediendo, no serás capaz de 'traducirlo' a código...

Además, debes decidir si el array lo devuelves en la función. Bueno, viendo las complicaciones que tienes, mejor no, haz la presentación bajo el primer bucle.

La presentación será recorrer el mismo array y exponer el valor que contiene en cada índice. Pero de verdad, si esto tan simple no alcanzas a hacerlo tu mismo...  :silbar:

...por último, te señalaba (edité el mensaje más arriba), que si el valor del que se quieren contar sus cifras fuera 0, esta cifra, se contaría dos veces y que dejaba a tu ingenio solventar ese pequeño detalle (sugerencia: que tal con un if, antes del bucle while).