Fişierul bac.txt conţine, în ordine descrescătoare, cel puţin două şi cel mult 106 numere naturale din intervalul [0,109], 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
a. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)
b. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia.
Răspunsuri la întrebare
Răspuns de
6
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("bac.txt");
int main()
{
int x,y,nr=0;
f>>x;
y=x;
while(f>>x)
{
if(x==y)
nr++;
else
{
if(nr==1)
cout<<y<<" ";
nr=0;
}
y=x;
}
if(nr==1)
cout<<x;
return 0;
}
Explicație:
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Religie,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă