fbpx

Problema #3164 – qclasa – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau n, reprezentând numărul de elevi apoi, pe câte un rând, datele fiecărui elev: codul (număr natural de maxim 4 cifre), media la informatică (număr natural de la 1 la 10) și numărul de absențe. Definiți un tip structură pentru a putea memora datele unui elev și rezolvați cerințele:

a) memorați datele tuturor elevilor într-un vector de structuri de tipul definit;

Exemplu

qclasa.in

3
1 10 3
2 8 1
3 8 5

Ieșire

1
8
3 8 5
1 10 3

Explicație

Este un singur elev cu media 10. Media clasei este 8.6666 dar noi afișăm doar partea întreagă a ei. Elevul cu codul 3 are cele mai multe absențe și îl urmează cel cu codul 1.

#include <bits/stdc++.h>

using namespace std;

ifstream cin("qclasa.in");
ofstream cout("qclasa.out");

int n , cnt , cc;

struct elev
{
    int medie, cod, abs;
}a[50];

bool comp(elev a, elev b)
{
    if(a.abs > b.abs) return 1;
    else if(a.abs == b.abs && a.cod < b.cod) return 1;
    else return 0;
}
int main()
{
    cin >> n;
    for(int i = 1; i <= n; ++i)
    {
        cin >> a[i].cod >> a[i].medie >> a[i].abs;
        if(a[i].medie == 10) cnt++;
        cc += a[i].medie;
    }
    cout << cnt << '\n' << cc / n << '\n';
    sort(a + 1, a + n + 1, comp);
    for(int i = 1; i <= 2; ++i)
        cout << a[i].cod << ' ' << a[i].medie << ' ' << a[i].abs << "\n";
    return 0;
}
Comentarii

S-ar putea sa iti placa