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ăspunsuri la întrebare
Răspuns de
1
#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.
Anexe:
ddd89:
Mulțumesc mult!
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Biologie,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă