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

Fişierul text bac.txt conţine pe fiecare linie câte un număr întreg format din cel mult patru cifre. Se ştie că fişierul conţine cel puţin un număr.
Scrieţi un program eficient atât din punct de vedere al timpului de executare cât şi din punct de vedere al spaţiului de memorie utilizat, care citeşte de la tastatură un număr real x, apoi determină şi afişează acel număr din fişierul bac.txt care are valoarea cea mai apropiată
de valoarea lui x.

Exemplu: dacă fişierul bac.txt are conţinutul alăturat, iar de la tastatură se
citeşte valoarea -3.85, programul va afişa valoarea -5.
4
-5
-6
-984
1345
-1

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <cmath>

#include <fstream>

using namespace std;

ifstream f("bac.txt");

float x;

int num, apropiat;

int main()

{

   cin >> x;

   f >> num;

   float difmin=abs(num-x), dif;

   apropiat=num;

   while (f >> num)

   {

       dif=abs(num-x);

       if (dif<difmin)

       {

           difmin=dif;

           apropiat=num;

       }

   }

   cout << apropiat;

}

Explicație:


Elena1elle: multumesc mult!!!
boiustef: cu plăcere, succese!
Alte întrebări interesante