4. Scrieti programul C++ care citeşte un număr natural n (0 apoi citeşte numele şi media generală a fiecăruia dintre cei n elevi ai unei
clase, mediile generale fiind valori diferite două câte două. Să se afişeze numele şi media celor n
copii, in ordinea descrescătoare a mediilor. Datele fiecărui copil se vor afişa pe câte o linie,
numele şi media separate printr-un spațiu.
Introduceti raspunsul

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;

}

ATENTIE! dupa ce introduci un nume, trebuie sa introduci caracterul ';'

Altfel, programul nu ruleaza cum trebuie.

Vezi imaginea OiLoveYouO