Răspuns :
#include <iostream>
#include <cstring>
using namespace std;
int ok, n;
float aux1;
char aux2[50];
int main ()
{
cin >> n;
struct Elev {
char nume [50];
float media;
} E[100];
for (i = 1; i <= n; i++) {
cin.get (E[i].nume, 50);
cin >> E[i].media;
}
//facem buuble sort pentru structura in fct de medie:
while (ok == 0) {
ok = 1;
for (i = 1; i < n; i++)
if (E[i].media < E[i+1].media) {
aux1 = E[i].media;
E[i].media = E[i+1].media;
E[i+1].media = aux1;
strcpy (aux2, E[i].nume);
strcpy (E[i].nume, E[i+1].nume);
strcpy (E[i+1].nume, aux2);
ok = 0;
}
//se afiseaza elementele din structura sortate dupa medie
for (i = 1; i < n; i++)
cout << E[i].nume << " " << E[i].media << endl;
return 0;
}