[ Foro de C++ ]
Mi duda es que tengo que crear un programa donde tengo que ingeresar el documento de los alumnos y las notas. A partir de eso calcular el promedio y mostrar de forma decreciente por el promedio del alumno de esta manera:
DOCUMENTO | NOTA 1 | NOTA 2 | NOTA 3 | PROMEDIO
Me sale ordenar el promedio pero las notas y el documento no estan en la misma fila.
Esto es lo que hice hasta ahora:
#include <iostream>
using namespace std;
struct info {
int dni;
int nota1;
int nota2;
int nota3;
int prom;
};
int main(int argc, char *argv[]) {
info aaa[99999];
int n, j , i, aux;
cout << "Alumnos: ";
cin >> n;
for (int i=0; i < n; i++) {
cout << "DNI: ";
cin >> aaa[i].dni;
cout << "Nota 1: ";
cin >> aaa[i].nota1;
cout << "Nota 2: ";
cin >> aaa[i].nota2;
cout << "Nota 3: ";
cin >> aaa[i].nota3;
aaa[i].prom=((aaa[i].nota1+aaa[i].nota2+aaa[i].nota3)/3);
}
for (i=0; i<n; i++)
for (j=i+1; j<n; j++){
if (aaa[i].prom>aaa[j].prom){
aux=aaa[i].prom;
aaa[i].prom=aaa[j].prom;
aaa[j].prom=aux;
}
}
cout << "Ordenado" << endl;
for (int i=0; i<n; i++)
cout << "DNI: " << aaa[i].dni << "| Nota 1: " << aaa[i].nota1 << "| Nota 2: " << aaa[i].nota2 << "| Nota 3: " << aaa[i].nota3 << "| Promedio: " << aaa[i].prom << endl;
return 0;
}
No entiendo. La lógica parece correcta (aunque es línea de "cout" tan larga lo hace poco legible). Y, de hecho, lo he probado y parece funcionar bien:
Alumnos: 2
DNI: 1
Nota 1: 1
Nota 2: 1
Nota 3: 1
DNI: 2
Nota 1: 2
Nota 2: 2
Nota 3: 2
Ordenado
DNI: 1| Nota 1: 1| Nota 2: 1| Nota 3: 1| Promedio: 1
DNI: 2| Nota 1: 2| Nota 2: 2| Nota 3: 2| Promedio: 2
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)