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

Fisierul text numere.in contine pe prima linie un nr natural n iar pe a doua linie n numere naturale cu cel mult 9 cifre fiecare.
Scrieti un program c++ care citeste toate nr din fisier si afiseaza pe ecran separate prin cate un spatiu, numerele formate doar din cifre distincte si care au exact trei cifre
Exemplu: daca fisierul numere.in contine
7
249 511 4329 2 4313 243 3562
atunci pe ecran se vor afisa numerele 249 243

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
3
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
ifstream fin("numere.in");

int nr, ok, aux, cfr;
int cifre[10];

int main()
{
    fin >> nr;
    while(fin >> nr) {
        aux = nr;

        while(nr) {
            if(!cifre[nr % 10]) cifre[nr % 10]++;
            else { ok = 1; break; }
            cfr++;
            nr /= 10;
        }

        if(!ok && cfr == 3) cout << aux << ' ';

        memset(cifre, 0, sizeof(cifre));
        ok = cfr = 0;
    }

    return 0;
}


Octavzz: Multumesc, dar ai putea formula un raspuns folosind cunostinte doar de clasa a 9-a ? fara string.h ?
AntiEaglesDavids: tot ce vezi acolo e de a 9-a, probabil te referi la clasa a 7-a. Hai ca ma apuc de rescris.
AntiEaglesDavids: gata: http://pastebin.com/0c0ESYua
AntiEaglesDavids: daca vrei varianta de clasa a 10-a (care dupa mine, e cea mai eleganta si simpla) :P http://pastebin.com/RhiV2fVm
AntiEaglesDavids: daca nu ai voie cu containere sau vectori simpli (practic doar int) poti incerca cu un bitmask: http://pastebin.com/WJfBpbVD
Alte întrebări interesante