Informatică, întrebare adresată de Eli19, 9 ani în urmă

Fişierul text bac.txt conţine un şir de cel mult 2009 numere naturale nenule, cu cel mult 4 cifre fiecare, pe mai multe rânduri, numerele de pe acelaşi rând fiind separate prin câte un spaţiu.
a) Scrieţi un program C/C++ care citeşte de la tastatură un număr natural k şi afişează pe ecran cel mai mic număr din fişierul bac.txt care este mai mare sau egal cu numărul
natural k, precum şi numărul de apariţii ale acestuia în fişier, folosind o metodă eficientă din punctul de vedere al timpului de executare. Cele două valori vor fi afişate pe o linie a ecranului, separate printr-un spaţiu. Dacă în fişier nu există nici un număr mai mare sau egal cu k, se va afişa doar valoarea 0.

Răspunsuri la întrebare

Răspuns de RandomDude
3
#include<iostream>
#include<fstream>
using namespace std;
int main () {
 ifstream f("fisier.txt");
 int k, aparitii = 1 , min = 0, x , retine = -1;
   cin>>k;
    while  (f>>x) {
        if (min < x)
          { 
              min = x;
           } 
        if (min >= k )
               {
                 retine = min;
                    }
                if (min == retine)
                       { aparitii ++;} else {aparitii = 1; }
}

if ( retine != -1)
cout <<retine <<" "<<aparitii;
else 
cout <<"Nu exista";
}
Alte întrebări interesante