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

Fisierul "numere.txt" contine mai multe numere reale separate prin spatii. Sa se afisieze pe ecran cele mai mari doua elemente distincete din acest fisier. Daca nu sunt doua numere distinte in fieiser, se va afisa mesajul IMPOSIBIL.

--------------------------------------

Ok, inca de la inceput imi dau seama ca voi avea nevoie de maxx1 si maxx2, iar programul incepe cam asa:

#
.
.
.
int
int main()
{while(fin>>x)

--------------------------

Nr. sunt reale, asta inseamna ca maxx1 si maxx2 trebuie sa fie initializate cu primele doua elemente din sir.Daca imi poate cineva explica cum se face problema, daca nu, e ok si linia de cod, voi incerca sa inteleg si singur.

Răspunsuri la întrebare

Răspuns de express
0
Salut! Ti-am facut o sursa C++ exact pe ideea indicata de tine...functioneaza. Succes!

#include <bits/stdc++.h>
using namespace std;
int n, ct, nr;
double x, max1, max2;
int main()
{
ifstream f("numere.txt");
f >> x;
nr = 1;
ct = 1;
max1 = max2 = x;
while(f >> x)
{
    nr ++;
        if(x > max1) max2 = max1, max1 = x;
 else
 {
     if(x > max2) max2 = x;
     if(x == max1) ct ++;
 }

}
if(ct == nr) cout << "IMPOSIBIL";
  else cout << max1 << " " << max2;
return 0;
}

Alte întrebări interesante