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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Error en el struct, necesito ayuda.
« en: 18 Diciembre 2011, 15:58 pm »

Hola, estoy con un programa y lo único que quiero es crear un array que almacene los resultados de otro array que es igual pero por alguna razón no lo encuentra, al compilar se puede ver el error en la línea 36 que es un bucle for para pasarle los datos pero me dice que gen[l].NVOTOSC no esta declarada sin embargo con result[l].NvotosC no hay ningún problema, si alguien puede encontrar el fallo porque yo ya no se donde esta.

El primer código es el del main y las funciones, en el segundo están declaradas las funciones y los arrays.

Código:
#include "Practica11Modif.h"

//int generales [10]; //************************************************

int main() {

int cens;


int &Pcens = cens;
cout << "¿Cual es el número de ciudadanos censados? " << endl;
cin >> cens;
votacion20N(Pcens);

cout << "Resultados finales de las elecciones 2011" << endl;
cout << endl;
cout << "               " << "Congreso  " << "Senado" << endl;
cout << endl;
cout << "1. PP            " << result[0].NvotosC << "   ----   " << result[0].NvotosS << endl;
cout << "2. PSOE          " << result[1].NvotosC << "   ----   " << result[1].NvotosS << endl;
cout << "3. IU            " << result[2].NvotosC << "   ----   " << result[2].NvotosS << endl;
cout << "4. CiU           " << result[3].NvotosC << "   ----   " << result[3].NvotosS << endl;
cout << "5. PNV           " << result[4].NvotosC << "   ----   " << result[4].NvotosS << endl;
cout << "6. UPiD          " << result[5].NvotosC << "   ----   " << result[5].NvotosS << endl;
cout << "7. BNG           " << result[6].NvotosC << "   ----   " << result[6].NvotosS << endl;
cout << "8. CC-NC-PNC     " << result[7].NvotosC << "   ----   " << result[7].NvotosS << endl;
cout << "9. ERC-RI        " << result[8].NvotosC << "   ----   " << result[8].NvotosS << endl;
cout << "10.Abstenerse    " << result[9].NvotosC << "   ----   " << result[9].NvotosS << endl;



for(int l=0;l<11;l++){ //***************************************************
gen[l].NVOTOSC << result[l].NvotosC;
gen[l].NVOTOSS << result[l].NvotosS;
};

int camara;
int nVotos;
cout << endl;
cout << "Elija una camara: " << endl;
cout << "1. Congreso" << endl;
cout << "2. Senado" << endl;
cin >> camara;
cout << endl;

while (camara < 1 || camara > 2){
cout << "Valor no valido, introduzca de nuevo el valor CAMARA: ";
cin >> camara;
}

cout << "Introduzca el número de votos: " << endl;
cin >> nVotos;
buscarPorNroVotosRecibidos(camara,nVotos);
cout << endl;

int camara1;
cout << endl;
cout << "Elija la camara para saber el partido ganador de las elecciones 2011" << endl;
cout << "1. Congreso" << endl;
cout << "2. Senado" << endl;
cin >> camara1;
buscarMaximo(camara1);

return 0;
}

/* *************************FUNCIONES******************************** */
void votacion20N (int Pcens){

int contador = 1;
int i = 0;
while (i<Pcens){
cout << "Elecciones 2011" << endl;
cout << "Elija una de las siguientes opciones para votar: " <<endl;
cout << endl;
int j=1;
while(j<11){
cout << j << " " << result[j-1].nombre << endl;
j++;
}


cout << endl;
cout << "VOTO [" << contador << "] "<< "de" << " [" << Pcens << "] "<< endl;

cout << "------------------------" << endl;
cout << "*Introduzca su voto para el Congreso de los Diputados: ";
cin >> voto.congreso;
cout << endl;

while (voto.congreso<1||voto.congreso>10){
cout << "Voto no permitido, intentelo de nuevo.";
cout << endl;
cout << endl;
cout << "(*)Introduzca su voto al Congreso de nuevo: ";
cout << endl;
cin >> voto.congreso;
}

int partido;
int &Ppartido = partido;
partido = voto.congreso-1;
mostrarResultadosCongreso(Ppartido);

cout << endl;
cout << endl;
cout << "*Introduzca su voto para el Senado(1): ";
cin >> voto.senadoPRIM;
cout << endl;

while (voto.senadoPRIM<1||voto.senadoPRIM>10){
cout << "Voto no permitido, intentelo de nuevo.";
cout << endl;
cout << endl;
cout << "(*)Introduzca su voto al Senado(1) de nuevo: ";
cout << endl;
cin >> voto.senadoPRIM;
}

int senadoP;
int &PsenadoP = senadoP;
senadoP = voto.senadoPRIM-1;
mostrarResultadosSenadoPRIM(PsenadoP);

cout << endl;
cout << endl;
cout << "*Introduzca su voto para el Senado(2): ";
cin >> voto.senadoSEG;
cout << endl;

while (voto.senadoSEG<1||voto.senadoSEG>10){
cout << "Voto no permitido, intentelo de nuevo.";
cout << endl;
cout << endl;
cout << "(*)Introduzca su voto al Senado(2) de nuevo: ";
cout << endl;
cin >> voto.senadoSEG;
}

int senadoS;
int &PsenadoS = senadoS;
senadoS = voto.senadoSEG-1;
mostrarResultadosSenadoSEG(PsenadoS);

   (result[voto.congreso-1].NvotosC)++;
   (result[voto.senadoPRIM-1].NvotosS)++;
   (result[voto.senadoSEG-1].NvotosS)++;
   
cout << endl;   
cout << endl;
cout << "Resultados de las elecciones 2011: "<< endl;
cout << "-------------------------------------------------------------------" << endl;
resultadosCongreso();
resultadosSenado();
cout << "-------------------------------------------------------------------" << endl;;
i++;
contador ++;
}


};

void mostrarResultadosCongreso (int partido){
    cout << "Usted a votado por el partido " << result[partido].nombre << " para el Congreso de los diputados.";
};

void mostrarResultadosSenadoPRIM (int senadoP){
    cout << "Usted a votado por el partido " << result[senadoP].nombre << " para el Senado(1).";
};

void mostrarResultadosSenadoSEG (int senadoS){
    cout << "Usted a votado por el partido " << result[senadoS].nombre << " para el Senado(2).";
};

void resultadosCongreso(){
cout << "El partido " << result[voto.congreso-1].nombre << " tiene " << result[voto.congreso-1].NvotosC << " en el Congreso de los Diputdos" << endl;
};

void resultadosSenado(){
cout << "El partido " << result[voto.senadoPRIM-1].nombre << " tiene " << result[voto.senadoPRIM-1].NvotosS << " en el Senado(1) " << endl;
cout << "El partido " << result[voto.senadoSEG-1].nombre << " tiene " << result[voto.senadoSEG-1].NvotosS << " en el Senado(2) " << endl;
};

void buscarPorNroVotosRecibidos(int camara, int nVotos){

if (camara==1){
if (result[0].NvotosC > nVotos){
cout << " " << result[0].nombre;
}
if (result[1].NvotosC > nVotos){
cout << " " << result[1].nombre;
}
if (result[2].NvotosC > nVotos){
cout << " " << result[2].nombre;
}
if (result[3].NvotosC > nVotos){
cout << " " << result[3].nombre;
}
if (result[4].NvotosC > nVotos){
cout << " " << result[4].nombre;
}
if (result[5].NvotosC > nVotos){
cout << " " << result[5].nombre;
}
if (result[6].NvotosC > nVotos){
cout << " " << result[6].nombre;
}
if (result[7].NvotosC > nVotos){
cout << " " << result[7].nombre;
}
if (result[8].NvotosC > nVotos){
cout << " " << result[8].nombre;
}
if (result[9].NvotosC > nVotos){
cout << " " << result[9].nombre;
}
if (result[10].NvotosC > nVotos){
cout << " " << result[10].nombre;
}
}

if (camara==2){
if (result[0].NvotosS > nVotos){
cout << " " << result[0].nombre;
}
if (result[1].NvotosS > nVotos){
cout << " " << result[1].nombre;
}
if (result[2].NvotosS > nVotos){
cout << " " << result[2].nombre;
}
if (result[3].NvotosS > nVotos){
cout << " " << result[3].nombre;
}
if (result[4].NvotosS > nVotos){
cout << " " << result[4].nombre;
}
if (result[5].NvotosS > nVotos){
cout << " " << result[5].nombre;
}
if (result[6].NvotosS > nVotos){
cout << " " << result[6].nombre;
}
if (result[7].NvotosS > nVotos){
cout << " " << result[7].nombre;
}
if (result[8].NvotosS > nVotos){
cout << " " << result[8].nombre;
}
if (result[9].NvotosS > nVotos){
cout << " " << result[9].nombre;
}
if (result[10].NvotosS > nVotos){
cout << " " << result[10].nombre;
}
}

};

void buscarMaximo(int camara1){
cout << endl;
if (camara1==1){

cout << endl;
cout << "El ganador de las elecciones en el Congreso es: " << endl;

int mayorC;
int iC;
int repetidoC;

mayorC = result[0].NvotosC;
repetidoC = 1;
int PC = 0;


for (iC=0; iC<11 ;iC++){
if (mayorC < result[iC].NvotosC) {
mayorC = result[iC].NvotosC;
PC=iC;
}

else if (mayorC==result[iC].NvotosC)
repetidoC ++;
}

cout << "Es el "<< result[PC].nombre << " por " << mayorC << " votos." << endl;
}

if (camara1==2){

cout << "El ganador de las elecciones en el Senado es: " << endl;


int mayorS;
int iS;
int repetidoS;

mayorS = result[0].NvotosS;
repetidoS = 1;
int PS = 0;


for (iS=0; iS<11 ;iS++){
if (mayorS < result[iS].NvotosC) {
mayorS = result[iS].NvotosS;
PS=iS;
}
else if (mayorS==result[iS].NvotosS)
repetidoS ++;
}
cout << "Es el "<< result[PS].nombre << " por " << mayorS << " votos." << endl;

}
};

y el fichero de cabecera:

Código:

#ifndef Practica11Modif_h
#define Practica11Modif_h
#include <iostream>
using namespace std;

void votacion20N(int);
void mostrarResultadosCongreso(int);
void mostrarResultadosSenadoPRIM(int);
void mostrarResultadosSenadoSEG(int);
void resultadosCongreso();
void resultadosSenado();
void buscarPorNroVotosRecibidos(int, int);
void buscarMaximo(int);

using namespace std;

struct voto {
  int congreso;
  struct {
    int senadoPRIM;
    int senadoSEG;
   
  };
};

struct resultados {
  char nombre[20];
  int NvotosC;
  int NvotosS;
};

struct voto voto;
struct resultados result[10] = {{"PP", 0, 0}, {"PSOE", 0, 0}, {"IU", 0, 0}, {"CIU", 0, 0}, {"PNV", 0, 0}, {"UPyD", 0, 0}, {"BNG", 0, 0}, {"CC-NC-PNC", 0, 0}, {"ERC-RI", 0, 0}, {"Voto en blanco", 0, 0}};

#endif


En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Error en el struct, necesito ayuda.
« Respuesta #1 en: 18 Diciembre 2011, 16:40 pm »

Es que gen[l].NVOTOSC no esta declarada!!!
Te lo está diciendo el mismo compilador.
C y C++ son lenguajes case sensitive, es decir, hacen diferencia entre mayúsculas y minúsculas!
La variable "a" no es lo mismo que la variable "A".
En tu caso específico, "gen[l].NVOTOSC" no es lo mismo que "gen[l].NvotosC"


En línea

Blp

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Error en el struct, necesito ayuda.
« Respuesta #2 en: 18 Diciembre 2011, 17:33 pm »

Ok no me había fijado en eso. Esa parte ya está, me compila por lo menos pero me salen dos warnings en la 37 y 38 que es dónde paso los valores de un array al otro ¿está bien hecho?

Aquí dejo la cabecera corregida:
Código:
#ifndef Practica11Modif_h
#define Practica11Modif_h
#include <iostream>
using namespace std;

void votacion20N(int);
void mostrarResultadosCongreso(int);
void mostrarResultadosSenadoPRIM(int);
void mostrarResultadosSenadoSEG(int);
void resultadosCongreso();
void resultadosSenado();
void buscarPorNroVotosRecibidos(int, int);
void buscarMaximo(int);

using namespace std;

struct voto {
  int congreso;
  struct {
    int senadoPRIM;
    int senadoSEG;
   
  };
};

struct resultados {
  char nombre[20];
  int NvotosC;
  int NvotosS;
};

struct generales{
  char nombre[20];
  int NVOTOSC;
  int NVOTOSS;
};

struct voto voto;
struct resultados result[10] = {{"PP", 0, 0}, {"PSOE", 0, 0}, {"IU", 0, 0}, {"CIU", 0, 0}, {"PNV", 0, 0}, {"UPyD", 0, 0}, {"BNG", 0, 0}, {"CC-NC-PNC", 0, 0}, {"ERC-RI", 0, 0}, {"Voto en blanco", 0, 0}};
struct generales gen[10] = {{"PP", 0, 0}, {"PSOE", 0, 0}, {"IU", 0, 0}, {"CIU", 0, 0}, {"PNV", 0, 0}, {"UPyD", 0, 0}, {"BNG", 0, 0}, {"CC-NC-PNC", 0, 0}, {"ERC-RI", 0, 0}, {"Voto en blanco", 0, 0}};

#endif
En línea

Ferno


Desconectado Desconectado

Mensajes: 375


Ver Perfil
Re: Error en el struct, necesito ayuda.
« Respuesta #3 en: 18 Diciembre 2011, 17:56 pm »

1) ¿Cuál es el warning que te tira?
2) ¿Por qué no pruebas con usar el operador de asignación "="?
En línea

4rkn63l

Desconectado Desconectado

Mensajes: 199



Ver Perfil
Re: Error en el struct, necesito ayuda.
« Respuesta #4 en: 18 Diciembre 2011, 23:12 pm »

Usa GenSHi por favor, asi es mas facil ayudarte.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]¿Como printear un valor de un struct dentro de otro struct?
Programación C/C++
Firos 0 5,189 Último mensaje 24 Marzo 2011, 13:47 pm
por Firos
Re: puedo colocar struct dentro de typedef? y necesito ayuda con inyeccion sin dll
Programación C/C++
Belial & Grimoire 2 3,049 Último mensaje 21 Septiembre 2011, 13:39 pm
por Ca0s
Necesito una ayuda con este struct
Programación C/C++
Blp 2 2,044 Último mensaje 19 Noviembre 2011, 23:57 pm
por Blp
ayuda con mi programa struct c
Programación C/C++
akiranakamure 2 2,211 Último mensaje 13 Marzo 2013, 21:58 pm
por durasno
[Error] char dentro de struct (AYUDA)
Programación C/C++
SaGaRaS 2 2,182 Último mensaje 3 Diciembre 2014, 11:27 am
por eferion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines