[C con Clase] Contar los digitos de un numero

Toni tsptoni en gmail.com
Sab Nov 6 17:30:53 CET 2010


Hola,

He hecho el siguiente codigo:

#include<iostream>
using namespace std;

int iesimo(int N, int i){
  int comparador,resultado;
  comparador=1;
  resultado=1;

     for (int j=0;j<i;j++){
comparador*=10;
     }
    if (comparador/10<N){
resultado=N%comparador;
comparador/=10;
  if (comparador!=0){
    resultado/=comparador;
  }

    }else{
resultado=-1;
    }
  return resultado;
}

int main(){
int num,digitos;

cout<<"Introduzca un numero: \n";
cin>>num;

digitos=0;

   while (iesimo(num,digitos)!=-1){
digitos++;
   }
digitos--;

cout<<"Tiene "<<digitos<<" digitos\n";

return 0;
}


Lo que quiero que haga ese programa es en primer lugar, al insertar un
numero cualquiera me diga cuantos digitos componen ese numero, por ejemplo
35435 son 5 digitos.
El problema que tengo es que cuando introduzco un numero de 9 o más digitos,
el resultado que me devuelve es erroneo.

Una vez sepa los digitos que tiene, tengo que sumar las posiciones
simetricas, (el primero con el ultimo, el segundo con penultimo) aunque para
esto ya haré su implementación, pero primero necesitaria el resultado
correcto de los digitos que forman ese numero.

Agradecería cualquier comentario o ayuda.

Saludos,

--
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101106/eff38bba/attachment.html>


Más información sobre la lista de distribución Cconclase