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

Fisierul text numere.in contine pe prima linie cel mult 1 000 000 de numere naturale cu cel mult 9 cifre fiecare, in ordine crescatoare. Sa se scrie un program care sa afiseze pe ecran pe aceeasi linie, cu spatiu intre ele, valorile distincte din fisier.

Răspunsuri la întrebare

Răspuns de andrei750238
3

#include <iostream>

#include <fstream>

using namespace std;

int main() {

   int curent, ante = -1, nr_ap = 2;

   ifstream fin("numere.in");

   while (fin) {

       fin >> curent;

       if (curent != ante) {

           if(nr_ap==1)

               cout << ante << " ";

           ante = curent;

           nr_ap = 1;

       }

       else nr_ap++;

   }

}

► Explicatie :

Deoarece numerele sunt in ordine crescatoare, pentru a ne asigura ca un numar nu apare de doua ori e necesar sa il comparam doar cu elementul anterior citit. Daca un numar apare de mai multe ori in sir aparitiile vor fi consecutive.

Alte întrebări interesante