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

Fişierul bac.txt conţine, în ordine descrescătoare, cel puţin două şi cel mult 10^6 numere naturale din intervalul [0,10^9], separate prin câte un spaţiu. Se cere să se afişeze pe ecran, în ordine strict descrescătoare, separate prin câte un spaţiu, numai numerele care apar în fişier de exact două ori. Dacă nu există niciun astfel de număr, se afișează pe ecran mesajul nu exista. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate şi al timpului de executare.

Exemplu: dacă fişierul conţine numerele 100 50 50 50 49 49 36 16 16 12 10 10 9 7 7

pe ecran se afişează, în această ordine, numerele 49 16 10 7

Anexe:

Răspunsuri la întrebare

Răspuns de MariusCelTrifan
4

Răspuns:

#include <iostream>

using namespace std;

int main()

 {

unsigned int n,i,x;

 cout<<"n=";

 cin>>n;

long a[n],b[100000]={0};

for(i=0;i<n;i++)

{

   cout<<"a["<<i<<"]=";

   cin>>a[i];

}

for(i=0;i<n;i++)

{

x=a[i];

b[x]++;

}

for(i=100000;i>0;i--)

   if(b[i]==2)

   cout<<i<<" ";

return 0;

}

Explicație:

Eu nu am ajuns inca la fisier, poti sa il bagi si tu

Alte întrebări interesante