Informatică, întrebare adresată de cristypetrisor, 8 ani în urmă

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

Răspuns de andrei750238
1

#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();

}

Alte întrebări interesante