Título: Ayuda C++ moderno
Publicado por: dario01dr 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. #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; }
Título: Re: Ayuda C++ moderno
Publicado por: MAFUS en 25 Junio 2022, 11:26 am
Tu problema está aquí: 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.
|