Fişierul atestat.in conţine pe prima linie numărul natural nenul n (2
Utilizând structuri de date tip înregistrare să se scrie un program, în limbajul Pascal/C/C++, care:
scrie în linie, pe ecran, separate prin câte un spaţiu, rezultatele sportivilor care au ridicat cel puţin 80 de kilograme la fiecare proba, sub forma (s,a) (greutate smulsă, greutate aruncată);
prin intermediul unui subprogram, afişează, pe linii distincte ale ecranului, cele mai bune trei rezultate la categoria total (smuls plus aruncat);
scrie în fişierul atestat.out, pe câte un rând, numărul intrării în concurs al celui mai bun sportiv pentru categoriile smuls, respectiv, aruncat.
Răspunsuri la întrebare
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("atestat.in");
ofstream g("atestat.out");
struct sportiv{
int s,a;
}v[100];
int n;
void maxim_total(){
int index = 0;
for(int i=1;i<n;i++) if(v[i].s + v[i].a > v[index].s + v[index].a )index = i;
cout << v[index].s + v[index].a << " ";
v[index].s *=-1;
v[index].a *=-1;
}
int main(){
f >> n;
for(int i=0;i<n;i++) f >> v[i].s >> v[i].a;
//calificati
for(int i=0;i<n;i++)
if(v[i].s>80 && v[i].a > 80) cout << "(" << v[i].s << "," << v[i].a << ") ";
//Scrie cel mai bun la fiecare proba
int index = 0;
for(int i=1;i<n;i++) if(v[i].s > v[index].s) index = i;
g << v[index].s << endl;
index = 0;
for(int i=1;i<n;i++) if(v[i].a > v[index].a) index = i;
g << v[index].a << endl;
//Afisare top 3
maxim_total();
maxim_total();
maxim_total();
}