Error en esta función--> main.cpp:29:53: error: 'puntos' no se declaró en este ámbito. ¿Alguien tiene idea de la posible solución?
/*
* File: main.cpp
* Author: jairo
*
* Created on 18 de mayo de 2013, 22:59
*/
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
int matrizr [5][4]= {{1,2,5,1},{3,1,2,2},{2,3,3,2},{1,4,2,0},{4,2,0,3}};
int ce=0;
int *pvector;
pvector=matrizr[0];
//int puntuacion;
cout<<"\nIntroduce el codigo del equipo: ";
cin>>ce;
//int puntuacion = puntos(matrizr,ce);
cout<<"\nLa puntuación es "<<puntos(pvector, ce)<<".";
return 0;
}
int puntos(int *matriz, int codigoequipo){
int *pmatriz;
pmatriz=matriz;
int matrizc[5][4];
int puntuacion=0;
for (int i=0; i<=5; i++){
for (int j=0; i<=4; j++){
int tam = i*4+j*4;
matrizc[i][j]= pmatriz[tam];
}
}
for (int i=0; i<=5; i++){
for (int j=0; i<=2; j++){
if(matrizc[i][j]==codigoequipo && j==1){
if(matrizc[i][3]>matrizc[i][4]){puntuacion= puntuacion +3;}
if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
}
if(matrizc[i][j]==codigoequipo && j==2){
if(matrizc[i][3]<matrizc[i][4]){puntuacion= puntuacion +3;}
if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
}
}
}
return puntuacion;
}
Vuelve a colgar el código esta vez usando las etiquetas GeSHi ce C++, pegas el código en medio de las etiquetas que te salen, si no, no se entiende nada. Las matrices por ejemplo, tal como están, salen incompletas.
R
Te adelanto que tienes duplicada la librería stdlib, es lo mismo que cstdlib y la string, ya que estas en C++ deberías ponerla como cstring.
Saluditos!. ..... ..(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
Tienes que poner un prototipo de la función antes del main:
int puntos(int *matriz, int codigoequipo);
De esa forma el compilador sabe que existe la función aunque aún no la hayas definido todavía:
/*
* File: main.cpp
* Author: jairo
*
* Created on 18 de mayo de 2013, 22:59
*/
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string>
#include <stdlib.h>
using namespace std;
/*
*
*/
int puntos(int *matriz, int codigoequipo); // Prototipo
int main(int argc, char** argv) {
int matrizr [5][4]= {{1,2,5,1},{3,1,2,2},{2,3,3,2},{1,4,2,0},{4,2,0,3}};
int ce=0;
int *pvector;
pvector=matrizr[0];
//int puntuacion;
cout<<"\nIntroduce el codigo del equipo: ";
cin>>ce;
//int puntuacion = puntos(matrizr,ce);
cout<<"\nLa puntuación es "<<puntos(pvector, ce)<<".";
return 0;
}
int puntos(int *matriz, int codigoequipo){
int *pmatriz;
pmatriz=matriz;
int matrizc[5][4];
int puntuacion=0;
for (int i=0; i<=5; i++){
for (int j=0; i<=4; j++){
int tam = i*4+j*4;
matrizc[i][j]= pmatriz[tam];
}
}
for (int i=0; i<=5; i++){
for (int j=0; i<=2; j++){
if(matrizc[i][j]==codigoequipo && j==1){
if(matrizc[i][3]>matrizc[i][4]){puntuacion= puntuacion +3;}
if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
}
if(matrizc[i][j]==codigoequipo && j==2){
if(matrizc[i][3]<matrizc[i][4]){puntuacion= puntuacion +3;}
if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
}
}
}
return puntuacion;
}
Muchísimas gracias amchacon lo mio no tiene perdón, pero como leve escusa estoy de exámenes y entre C++, programación orientada a objetos, sql y java, me estoy volviendo loco.
Cita de: oriaj3 en 20 Mayo 2013, 15:00 PM
Muchísimas gracias amchacon lo mio no tiene perdón, pero como leve escusa estoy de exámenes y entre C++, programación orientada a objetos, sql y java, me estoy volviendo loco.
Me da mí que ya lo sabías... Como entiendo esa sensación ;-)
El 90% de los errores no es por ignorancia sino por despiste. Te lo digo por experiencia xD
Dímelo que acabo de salir de un examen de c++, donde he devuelto un vector de estructuras en plan return vectorDeEstructuras;
en vez de hacerlo con new y declarando memoria dinamica :S