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

Fişierul date.in conţine pe prima linie un număr natural n din intervalul (0,5000), iar pe a doua linie, separate prin câte un spaţiu, n numere naturale, formate din cel mult 4 cifre fiecare. Scrieţi un program C/C++ care determină şi scrie în fişierul date.out, toate numerele, citite de pe a doua linie a fişierului date.in, care apar de cel puţin două ori. Numerele determinate se vor scrie în ordine crescătoare, pe aceeaşi linie, separate prin câte un spaţiu.
Exemplu: dacă fişierul date.in conţine pe prima linie numărul 11, iar pe linia a doua valorile 23 12 54 12 78 345 67 23 78 934 23
atunci fişierul date.out va conţine: 12 23 78

Răspunsuri la întrebare

Răspuns de raulardelean10
0

Răspuns:

#include <iostream>

#include <cmath>

#include <fstream>

using namespace std;

ifstream in("date.in");

ofstream out("date.out");

int f[10000],n,x,vmax=0;

int main()

{

in>>n;

for(int i=1;i<=n;i++)

{

in>>x;

vmax=max(vmax,x);

f[x]++;

}

for(int i=0;i<=vmax;i++)

if(f[i]>=2)

out<<i<<' ';

return 0;

}

Alte întrebări interesante