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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Duda sobre structs!!!
« en: 9 Enero 2018, 23:54 pm »

Si tengo un struct definido, ej:
          
Código
  1. struct Notas {
  2.  
  3.        // Estructura interna de un dato de tipo Notas
  4.       int codigoAlumno;
  5.       int cualitativa1;
  6.       int cuantitativa1;
  7.       int cualitativa2;
  8.       int cuantitativa2;
  9. };

y una funcion en la que se implican dos variables del struct:


Código
  1. suspendido=1;
  2. aprobado=0;
  3. void convocatoria1 (const Notas& n, int& cualitativa, int& cuantitativa){
  4.    if (n.cualitativa1==suspendido){
  5.        cualitativa=n.cualitativa1;
  6.  
  7.    }
  8.    else{
  9.        cualitativa=n.cualitativa1;
  10.        cuantitativa=n.cuantitativa1;
  11.    }
  12. }

En el caso de que este suspendido me devuelve la variable por referencia  "cualitativa",
pero como hago para que no me devuelva la variable "cuantitativa"?
Porque si en el main, meto la funcion en un bucle :



Código
  1. int main(){
  2.  
  3.    int convo1cuali=0;
  4.    int convo1cuanti=0;
  5.    Notas vector[14];
  6.  
  7.     int j=0;
  8.    while(j<14){
  9.  
  10.        convocatoria1(vector[j],convo1cuali,convo1cuanti);
  11.        cout<<convo1cuali<<" "<<convo1cuanti<<endl;
  12.        j++;
  13.    }
  14.    return 0;
  15. }

La cuantitativa en el caso de estar suspendido(que no se tiene que mostrar), en vez de no mostrarse, saca por pantalla el valor de la cuantitativa de j-1 del bucle.

Tienen idea de como se podria arreglar?, gracias de antemano




En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Duda sobre structs!!!
« Respuesta #1 en: 10 Enero 2018, 03:23 am »

Una forma extraña de invocar una función. Pasas un estructura a una función, para luego devolver también sus dos elementos por referencia... no le veo el sentido, salvo que sea simplemente practicar... (aunque mala práctica).

Tu dilema se resuelve en evaluar tras la llamada el resultado...
Tu tienes:

Código:
Convocactoria1(array(j), cuali, cuanti)
mensaje cuali + cuanti

Pués evaluando a su regreso harías algo como:
Código:
Convocactoria1(array(j), cuali, cuanti)
Si (cuali = aprobado) luego
    mensaje cuali + cuanti
sino  //esto es, suspendido
    mensaje cuali  // omitimos cuanti, según tu propuesta de que no debe mostrarse.
fin si

Luego en la función preguntas por un valor, y tanto si es suspendido como aprobado, en ambos casos repites la línea... si debe ser así, esa línea basta ponerla fuera del condicional si, sí o sí, se va a consigar, o corrige eliminando la que no proceda...
Te lo marco en negrita.

void convocatoria1 (const Notas& n, int& cualitativa, int& cuantitativa){
    if (n.cualitativa1==suspendido){
        cualitativa=n.cualitativa1;    }
    else{
        cualitativa=n.cualitativa1;
        cuantitativa=n.cuantitativa1;    }
}
Es decir quizás quisieras hacer algo como esto (copio y pego y corijo in situ):
Código:
void convocatoria1 (const Notas& n, int& cualitativa, int& cuantitativa){
    cualitativa=n.cualitativa1;
 
    if (n.cualitativa1==aprobado){
        cuantitativa=n.cuantitativa1;    }
}


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con ficheros y structs en C
Programación C/C++
chica_23 9 5,736 Último mensaje 19 Marzo 2011, 20:24 pm
por chica_23
Duda con structs C/C++ « 1 2 »
Programación C/C++
SARGE553413 13 8,260 Último mensaje 21 Junio 2013, 18:50 pm
por pacoperico
C++ - Duda sobre el consumo de memoria de listas enlazadas y structs.
Programación C/C++
xaps 0 1,731 Último mensaje 19 Noviembre 2013, 02:15 am
por xaps
Consulta sobre Structs y Archivos.
Programación C/C++
Arturo400 0 1,554 Último mensaje 24 Septiembre 2016, 21:30 pm
por Arturo400
Array de structs duda con los nombres C#
.NET (C#, VB.NET, ASP)
RevolucionVegana 2 3,368 Último mensaje 3 Junio 2017, 05:31 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines