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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


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

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Ayuda C++ moderno
« en: 25 Junio 2022, 06:36 am »

Hola amigos del foro, tengo este codigo en C++ moderno. El problema es que se repite el nombre y el curso.
Como puedo hacerlo para que aparezca una sola vez:

Ejm:
Juan     Fisica      12,18,17
Pedro   Quimica  11,10,16
Luis      Lengua   16,19,11

Salu2.

Código:
#include <iostream>
#include <vector>

using namespace std;

struct Estudiantes
{
    string nombre;
    string curso;
    vector <int> notas;
};

int main() {

    vector <Estudiantes> alumnos;
    int i,j;
    string snombre,scurso;
    int inotas;

    for (i=0; i<3; i++) {
        cout << "Nombre del alumno: ";
        getline(cin,snombre);
        cout << "Curso: ";
        getline(cin,scurso);

        for (j=0; j<3; j++) {
            cout << "Nota N° " << j+1 << ": ";
            cin >> inotas;
            alumnos.push_back(Estudiantes{snombre,scurso,{inotas}});
        }

        cin.ignore();
    }

    /*alumnos.push_back(Estudiantes{"Juan","Quimica",{45,68,38,65,70}});
    alumnos.push_back(Estudiantes{"Luis","Fisica",{87,36,24}});
    alumnos.push_back(Estudiantes{"Pedro","Lengua",{48,98,63}});*/

    for (auto s : alumnos)
    {
        cout << "Nombre: " << s.nombre << endl;
        cout << "Curso: " << s.curso << endl;
        cout << "Notas: ";
        for (auto n : s.notas)
            cout << n << " ";

        cout << endl;
    }

    return 0;
}


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda C++ moderno
« Respuesta #1 en: 25 Junio 2022, 11:26 am »

Tu problema está aquí:
Código:
for (j=0; j<3; j++) {
    cout << "Nota N° " << j+1 << ": ";
    cin >> inotas;
    alumnos.push_back(Estudiantes{snombre,scurso,{inotas}});
}

Cada vez que el bucle itera metes un estudiante nuevo. Sólo deberías actualizar un vector de notas y agregarlo a al usuario después del bucle.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PROBLEMA AL INSTALAR W7 EN PC NUEVO Y MODERNO
Windows
spiderat85 7 5,224 Último mensaje 4 Febrero 2011, 19:25 pm
por Sk9ITk5Z
¿Es Internet Explorer 9 un navegador moderno? En Mozilla creen que no
Noticias
wolfbcn 3 3,119 Último mensaje 16 Febrero 2011, 21:22 pm
por Garfield07
El ocio moderno y antiguo
Foro Libre
Stakewinner00 4 4,352 Último mensaje 15 Mayo 2015, 20:32 pm
por kub0x
El moderno chip del iPhone será de apenas 5 nanómetros
Noticias
wolfbcn 1 2,030 Último mensaje 1 Noviembre 2019, 14:06 pm
por El_Andaluz
Desbordamiento de pila moderno
Análisis y Diseño de Malware
Usuario887 2 8,033 Último mensaje 9 Julio 2020, 20:10 pm
por Usuario887
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines