Autor
|
Tema: Error en compilación! (Leído 1,552 veces)
|
MJI
Desconectado
Mensajes: 12
|
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
Mensajes: 27
|
Hola, pruebalo asi: #include <iostream> using namespace std; int main() { int factor1, factor2, prod, res; int a,b,c,d; cout << "Dime primer factor: "; cin >> factor1; cout << "Dime segundo factor: "; cin >> factor2; cout << "Dime tu propuesta de resultado: "; cin >> res; prod = factor1 * factor2; a = factor1 % 9; c = factor2 % 9; d = (a * c) % 9; b = res % 9; cout << "La 'raiz digital' de " << factor1 << " es: " << a << endl; cout << "La 'raiz digital' de " << factor2 << " es: " << c << endl; cout << "La 'raiz digital' del producto (" << prod << ") es: " << prod % 9 << endl; cout << "La 'raiz digital' de tu propuesta de resultado es: " << b <<endl<< endl; if(b == d) cout << "La multiplicación, probablemente, este BIEN." << endl; else cout << "La multiplicación esta MAL."; return 0; }
|
|
|
En línea
|
|
|
|
MJI
Desconectado
Mensajes: 12
|
Hola, pruebalo asi: #include <iostream> using namespace std; int main() { int factor1, factor2, prod, res; int a,b,c,d; cout << "Dime primer factor: "; cin >> factor1; cout << "Dime segundo factor: "; cin >> factor2; cout << "Dime tu propuesta de resultado: "; cin >> res; prod = factor1 * factor2; a = factor1 % 9; c = factor2 % 9; d = (a * c) % 9; b = res % 9; cout << "La 'raiz digital' de " << factor1 << " es: " << a << endl; cout << "La 'raiz digital' de " << factor2 << " es: " << c << endl; cout << "La 'raiz digital' del producto (" << prod << ") es: " << prod % 9 << endl; cout << "La 'raiz digital' de tu propuesta de resultado es: " << b <<endl<< endl; if(b == d) cout << "La multiplicación, probablemente, este BIEN." << endl; else cout << "La multiplicación esta MAL."; return 0; }
Si que funciona así, pero la idea era hacerlo con recursividad
|
|
|
En línea
|
|
|
|
CalgaryCorpus
|
Fíjate en el nombre que le pusiste a la función y como la invocaste. Hay una diferencia allí.
|
|
|
En línea
|
|
|
|
K-YreX
|
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.
|
|
|
En línea
|
cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Error De Compilacion :'(
« 1 2 »
Programación Visual Basic
|
Petro_Boca
|
13
|
5,897
|
2 Agosto 2010, 21:45 pm
por BlackZeroX
|
|
|
Error de compilacion
Programación Visual Basic
|
Mr.Blue
|
4
|
4,920
|
22 Agosto 2010, 01:17 am
por Mr.Blue
|
|
|
error de compilacion
Programación C/C++
|
mapers
|
2
|
2,751
|
8 Septiembre 2010, 13:27 pm
por JuszR
|
|
|
John the ripper Error de compilacion -- make: *** [generic.h] Error 1 --
GNU/Linux
|
hbenzin
|
2
|
3,925
|
20 Agosto 2011, 23:42 pm
por hbenzin
|
|
|
Error de compilacion con SDL
Programación C/C++
|
@XSStringManolo
|
2
|
1,493
|
6 Mayo 2019, 20:02 pm
por RayR
|
|