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

#2269
Cerința
Se dau n numere naturale. Determinați cel mai mare număr par introdus și numărul său de apariții.

Date de intrare
Fișierul de intrare maximpar.in conține pe prima linie numărul n, iar pe a doua linie n numere naturale separate prin spații.

Date de ieșire
Fișierul de ieșire maximpar.out va conține pe prima linie numerele maxim si apare, reprezentând maximul par dintre numerele de pe a doua linie a fișierului de intrare și aparițiile acestuia, dacă fișierul de intrare conține cel puțin un număr par, respectiv -1, în caz contrar.

Restricții și precizări
1 ≤ n ≤ 200
numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 1.000



Exemplu
maximpar.in

6
9 6 9 8 9 8
maximpar.out

8 2
Explicație
În fișierul de intrare sunt 6 numere, cel mai mare număr par este 8 și apare de 2 ori.

Răspunsuri la întrebare

Răspuns de boiustef
13

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

int main()

{

   ifstream f("maximpar.in");

   ofstream g("maximpar.out");

   int n, a, maxim, apare=-1, i, ap=0;

   f >> n >> a;

   if (a%2==0) { maxim=a; apare=1; ap=1; i=1;}

   else

   {

       i=1;

       while (a%2 && i<n)

       {

           f >> a;

           ++i;

       }

    if (i<=n && a%2==0)

   {

      ap=1;  maxim=a; apare=1;

   }

   }

   if (ap)

   {

       while (i<n)

       {

           f >> a;

           ++i;

           if (a%2==0)

           {

               if (a>maxim) { maxim=a; apare=1; }

               else if (a==maxim) ++apare;

           }

       }

       g << maxim << " " << apare << endl;

   }

   else g << -1 << endl;

   f.close();  g.close();

   return 0;

}

Explicație:


boiustef: pentru cazul că la copierecod postat obţii erori, dau şi link-ul de unde poţi lua codul sursă
https://pastebin.com/Vq9Gj4FC
Niluco: multumesc frumos !
Alte întrebări interesante