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

Pe prima linie a fişierului text BAC.IN se găsesc, separate prin câte un spaţiu, mai multe
numere naturale de cel mult 9 cifre fiecare. Scrieţi un program C/C++ care citeşte numerele din acest fişier, elimină toate cifrele impare din fiecare dintre aceste numere şi apoi scrie în fişierul text BAC.OUT numerele astfel obţinute, separate prin câte un spaţiu. Dacă un număr din fişierul BAC.IN nu conţine nicio cifră pară nenulă, acesta nu va mai apărea deloc în fişierul de ieşire.
Exemplu: dacă fişierul BAC.IN conţine numerele 25 7 38 1030 45127 0 35 60 15,
atunci BAC.OUT va avea conţinutul: 2 8 42 60.

Răspunsuri la întrebare

Răspuns de antonii
12
ifstream fi("bac.in");
ofstream fo("bac.out");
int x,y=0,p=1;

while(!fi.eof()){
   fi>>x;
   y=0;p=1;
   while(x){
      if(x%2==0) {y+=p*(x%10);p*=10;}
      x/=10;
   }
   //daca x nu contine niciun nr. par atunci y e 0.
   if(y!=0) fo<<y;
}

andriesboss92: a, da
andriesboss92: acuma merge, mersi.. :)
antonii: da..si la programul tau care e problema? Nu vad niciuna...in afara de faptul ca se aplica doar unui numar. Poti sa-l executi pt. fiecare nr. fin bac.in cu un while(!f.eof())..Dar e bun algoritmul tau.
andriesboss92: stai, cred ca stiu ce e gresit la al meu.. nu am pus acea conditie ...
antonii: da..asta da
andriesboss92: mda, mersi mult :)
andriesboss92: antonii
antonii: ...poti sa-mi multumesti prin apasand acel mic buton rosu pe care scrie "multumesc"...doar...asa..sa vada si alii. Cu placere.
andriesboss92: oricum faceam asta :)) Poti sa te uiti te rog la mesaj ( privat )
antonii: acum ma uitam
Alte întrebări interesante