Dev - C++ - Alguien encuentra el error

   
Vista:

Alguien encuentra el error

Publicado por Aeneas (3 intervenciones) el 21/03/2017 20:11:39
Bueno he escrito este programa para encontrar el numero de cifras de un numero pero una vez que el numero tiene mas de 10 cifras el resultado que aparece por la consola siguen siendo 10.
Programa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
 
int main() {
    // Variable Num = Numero a introducir por pantalla
    // Variable Cifra = Numero de cifras que tiene Num
    int Num, Cifra = 0;
    cout << "Numero ?";
    cin >> Num;
    while (Num > 0) {
    Num = Num / 10;
    Cifra = Cifra + 1;
    }
    cout << Cifra << endl;
    system ("pause");
}

Gracias por la ayuda de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Alguien encuentra el error

Publicado por Thanatos (131 intervenciones) el 22/03/2017 00:00:40
Una variable de tipo int, que normalmente ocupa 4 bytes en la memoria, puede almacenar valores dentro del rango de -2147483648 hasta 2147483647. Para ampliar la cantidad de cifras que puede almacenar la variable num, necesitas usar un tipo de dato con mayor capacidad como long int o long long int.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alguien encuentra el error

Publicado por agustin (522 intervenciones) el 23/03/2017 00:14:04
¿Y por qué no usar directamente una string?
Solo necesitarías primero comprobar que todos sus caracteres sean dígitos y si es así usas lengua y obtienes el largo de la cadena teniendo así el número de cifras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar