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

Fișierul de intrare conține cel puțin 3 și cel mult 1.000.000 de numere naturale. Se cere să se afișeze în fișierul de ieșire, separate printr-un spaţiu, două numere distincte, anume cel mai mic număr par cu două cifre și cel mai mare număr par cu două cifre care NU fac parte din şir.​

Răspunsuri la întrebare

Răspuns de bobita25
0

Răspuns:

#include <iostream>

#include <fstream>

#include <algorithm>

using namespace std;

int v[100];

int main() {

ifstream fin("BAC.TXT");

int x, mn, mx;

while(fin >> x)

{

 if(x >= 10 && x <= 98 && x % 2 == 0)

  v[x]++;

}

for(int i = 10; i <= 98; i+=2)

{

 if(!v[i])

 {

  mn = i;

  break;

 }

}

for(int i = 98; i >= 10; i-=2)

{

 if(!v[i])

 {

  mx = i;

  break;

 }

}

if(mn != mx)

 cout << mn << " " << mx;

else cout << "Nu exista doua astfel de numere.";

fin.close();

   return 0;

}

Explicație:

Programul folosește un vector de frecvență pentru a contoriza numarul de aparitii ale fiecarui numar par cu doua cifre intalnit in sir.

 Pentru a determina cel mai mic si cel mai mare numar par cu doua cifre care nu apar in fisier, programul parcurge vectorul "v" de la 10 la 98 pentru a gasi cel mai mic numar par care nu apare in vector (variabila "mn") si de la 98 la 10 pentru a gasi cel mai mare numar par care nu apare in vector (variabila "mx").

Alte întrebări interesante