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
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";
}
#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
Limba română,
8 ani în urmă
Geografie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Franceza,
9 ani în urmă