[C con Clase] practico funciones y el valor cambia a nulo

Emanuel Cristaldo imeniuel.3.6 en gmail.com
Mie Sep 11 18:29:56 CEST 2019


Hola estoy con un problema que siempre se me presenta y no se como
solucionarlo.
el problema es que creo una funcion que obtenga datos y a la hora de usarlo
los datos se transforman en cero, y no se porque ocurre esto.
no espero que me resuelvan el codigo(ese es mi trabajo)pero me gustaria
saber porque ocurre este problema siempre que aplico esto.
el codigo que reslize es este:

/*
Confeccionar un programa que solicite el ingreso de un número entero
positivo de 4 cifras y pueda calcular e
informar la suma de sus dígitos hasta llegar a una sola cifra. Ej:2561 → 5
*/
#include <iostream>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int obtener_datos(int numero);
int calculo_datos(int suma,int numero);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
using namespace std;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int numero;
int suma;

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main()
{

    obtener_datos(numero);
  calculo_datos(suma,numero);

    return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int obtener_datos(int numero)
{
    do
    {
        cout<<"Digite un numero de 4 cifras mayor a 1000 y menor a 9999: ";
        cin>>numero;
        cout<<"el numero es: "<<numero<<endl; //mensaje para mostrar el
valor del numero que obtiene
        if(numero<999||numero>9999)
        {
            cout<<"Error"<<endl;
            cout<<"Digite un numero de 4 cifras mayor a 1000 y menor a
9999: ";

        }
    }while(numero<999||numero>9999);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int calculo_datos(int suma,int numero)
{
    int unidad_mil;
    int decena;
    int centena;
    int unidad;
    int unidad2;
    int decena2;

    unidad_mil=numero/1000;
    centena=(numero%1000)/100;
    decena=((numero%1000)%100)/10;
    unidad=((numero%1000)%100)%10;
    suma=unidad+decena+centena+unidad_mil;
    cout<<"el numero es: "<<numero<<endl;
    if(obtener_datos(suma)<9)
    {   cout<<"el numero es: "<<numero<<endl;
        cout<<"El resultado es: "<<suma<<endl;
    }
    else
    {       cout<<"el numero es: "<<numero<<endl;
            suma=unidad+decena+centena+unidad_mil;

        decena2=suma/10;
        unidad2=suma%10;
        suma=decena2+unidad2;
        cout<<"El resultado es: "<<suma<<endl;
    }
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20190911/90c4d5c4/attachment.html>


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