elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error en compilación!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en compilación!  (Leído 1,537 veces)
MJI

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Error en compilación!
« en: 8 Diciembre 2018, 13:35 pm »

Hola, estaba creando un programa que realizase la prueba del 9 en una multiplicación.
Al compilar me saca este error:

b6_4_raizdigital.cpp:(.text+0x147): undefined reference to `SumaCifrasNumero(int, int)'

[Error] ld returned 1 exit status

No especifica ninguna linea en ninguno de los 2. El programa es el siguiente:




#include <iostream>

using namespace std;

int SumaCifrasNumero(int a, int suma);
int NumeroMayor9(int a, int b);

int main()
{
    int factor1, factor2, prod, res, rdf1, rdf2, rdprod, rdres, suma = 0, sumfinal = 0;
   
    cout << "Dime primer factor: ";
    cin >> factor1;
    cout << "Dime segundo factor: ";
    cin >> factor2;
    cout << "Dime tu propuesta de resultado: ";
    cin >> res;
   
    prod = factor1 * factor2;
   
    rdf1 = SumaCifrasNumero(factor1, suma);
    if(rdf1 >= 10)
        rdf1 = NumeroMayor9(rdf1, sumfinal);
    else if(rdf1 == 9)
        rdf1 = 0;
   
    rdf2 = SumaCifrasNumero(factor2, suma);
    if(rdf2 >= 10)
        rdf2 = NumeroMayor9(rdf2, sumfinal);
    else if(rdf2 == 9)
        rdf2 = 0;
       
    rdprod = SumaCifrasNumero(prod, suma);
    if(rdprod >= 10)
        rdprod = NumeroMayor9(rdprod, sumfinal);
    else if(rdprod == 9)
        rdprod = 0;
   
    rdres = SumaCifrasNumero(res, suma);
    if(rdres >= 10)
        rdres = NumeroMayor9(rdres, sumfinal);
    else if(rdres == 9)
        rdres = 0;
   
    cout << "La 'raiz digital' de " << factor1 << " es: " << rdf1 << endl;
    cout << "La 'raiz digital' de " << factor2 << " es: " << rdf2 << endl;
    cout << "La 'raiz digital' del producto (" << prod << ") es: " << rdprod << endl;
    cout << "La 'raiz digital' de tu propuesta de resultado es: " << rdres <<endl<< endl;
   
    if(rdprod == rdres)
        cout << "La multiplicación, probablemente, este BIEN." << endl;
    else
        cout << "La multiplicación esta MAL.";
   
    return 0;
}


int SumarCifrasNumero(int a, int suma)
{
    int num;
   
    num = a % 10;
    suma = suma + num;
   
    if (a > 0)
        suma = SumarCifrasNumero(a, suma);
   
    return suma;
}

int NumeroMayor9(int a, int b)
{
    int sumfinal;
   
    if(a >= 0)
        sumfinal = SumarCifrasNumero(a, b);
       
    return sumfinal;
}


¿Alguien sabe algo acerca de estos errores?


En línea

dariodr01

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Error en compilación!
« Respuesta #1 en: 8 Diciembre 2018, 14:45 pm »

Hola, pruebalo asi:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    int factor1, factor2, prod, res;
  8.    int a,b,c,d;
  9.  
  10.    cout << "Dime primer factor: ";
  11.    cin >> factor1;
  12.    cout << "Dime segundo factor: ";
  13.    cin >> factor2;
  14.    cout << "Dime tu propuesta de resultado: ";
  15.    cin >> res;
  16.  
  17.    prod = factor1 * factor2;
  18.    a = factor1 % 9;
  19.    c = factor2 % 9;
  20.    d = (a * c) % 9;
  21.    b = res % 9;
  22.  
  23.  
  24.  
  25.    cout << "La 'raiz digital' de " << factor1 << " es: " << a << endl;
  26.    cout << "La 'raiz digital' de " << factor2 << " es: " << c << endl;
  27.    cout << "La 'raiz digital' del producto (" << prod << ") es: " << prod % 9 << endl;
  28.    cout << "La 'raiz digital' de tu propuesta de resultado es: " << b <<endl<< endl;
  29.  
  30.    if(b == d)
  31.        cout << "La multiplicación, probablemente, este BIEN." << endl;
  32.    else
  33.        cout << "La multiplicación esta MAL.";
  34.  
  35.    return 0;
  36. }
  37.  


En línea

MJI

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Error en compilación!
« Respuesta #2 en: 8 Diciembre 2018, 14:49 pm »

Hola, pruebalo asi:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    int factor1, factor2, prod, res;
  8.    int a,b,c,d;
  9.  
  10.    cout << "Dime primer factor: ";
  11.    cin >> factor1;
  12.    cout << "Dime segundo factor: ";
  13.    cin >> factor2;
  14.    cout << "Dime tu propuesta de resultado: ";
  15.    cin >> res;
  16.  
  17.    prod = factor1 * factor2;
  18.    a = factor1 % 9;
  19.    c = factor2 % 9;
  20.    d = (a * c) % 9;
  21.    b = res % 9;
  22.  
  23.  
  24.  
  25.    cout << "La 'raiz digital' de " << factor1 << " es: " << a << endl;
  26.    cout << "La 'raiz digital' de " << factor2 << " es: " << c << endl;
  27.    cout << "La 'raiz digital' del producto (" << prod << ") es: " << prod % 9 << endl;
  28.    cout << "La 'raiz digital' de tu propuesta de resultado es: " << b <<endl<< endl;
  29.  
  30.    if(b == d)
  31.        cout << "La multiplicación, probablemente, este BIEN." << endl;
  32.    else
  33.        cout << "La multiplicación esta MAL.";
  34.  
  35.    return 0;
  36. }
  37.  


Si que funciona así, pero la idea era hacerlo con recursividad :rolleyes:
En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Error en compilación!
« Respuesta #3 en: 8 Diciembre 2018, 15:13 pm »

Fíjate en el nombre que le pusiste a la función y como la invocaste. Hay una diferencia allí.
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Error en compilación!
« Respuesta #4 en: 8 Diciembre 2018, 15:32 pm »

Como te han comentado:
Fíjate en el nombre que le pusiste a la función y como la invocaste. Hay una diferencia allí.

Estás cambiando el nombre de la función. En el prototipo de la función se llama <SumaCifrasNumero()> y en la implementación (abajo) se llama <SumarCifrasNumero()>. El fallo es esa "R" de "Sumar".

Cuando un compilador te muestra este error "undefined reference to `SumaCifrasNumero(int, int)". Se debe a que no encuentra la función que le estás diciendo. En esos casos tienes que ver que el nombre sea el mismo (cosa que en tu caso no es y por eso falla) o que le estés pasando diferentes parámetros en un sitio que en otro (no es tu caso). Suerte. :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error De Compilacion :'( « 1 2 »
Programación Visual Basic
Petro_Boca 13 5,857 Último mensaje 2 Agosto 2010, 21:45 pm
por BlackZeroX
Error de compilacion
Programación Visual Basic
Mr.Blue 4 4,896 Último mensaje 22 Agosto 2010, 01:17 am
por Mr.Blue
error de compilacion
Programación C/C++
mapers 2 2,742 Último mensaje 8 Septiembre 2010, 13:27 pm
por JuszR
John the ripper Error de compilacion -- make: *** [generic.h] Error 1 --
GNU/Linux
hbenzin 2 3,905 Último mensaje 20 Agosto 2011, 23:42 pm
por hbenzin
Error de compilacion con SDL
Programación C/C++
@XSStringManolo 2 1,483 Último mensaje 6 Mayo 2019, 20:02 pm
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines