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

Din fișierul atestat.in se citesc numere întregi cu cel mult nouă cifre. Să se afișeze în ordinea inversă citirii toate numerele echilibrate. Se numește număr echilibrat, un număr care are în scrierea lui, un număr de cifre pare egal cu numărul de cifre impare. Presupunem că se va citi cel puțin un număr echilibrat.
Exemplu: Dacă din fișierul atestat.in se citesc numerele:
123 45 2345 67 3 2 13 14 8 34 9 23 5 5276 2134 1 46789
Se vor afișa numerele: 2134 5276 34 14 67 2345 45

Răspunsuri la întrebare

Răspuns de c6779d3c
0

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream fin("date.in");

int echilibrat (int n)

{

// verificam daca un numar este echilibrat

// cu ajutorul acestei functii

   int i = 0, cifPar = 0, cifImp = 0;

   while (n)

   {

       if (n % 2 == 0)

           cifPar ++;

       else

           cifImp ++;

       n /= 10;

   }

   if (cifPar == cifImp)

       return 1;

   return 0;

}

int main()

{

   int  x,  k = 0, v[1000];

// cat timp se citesc elemente le introducem intr-un vector

   while (fin >> x)

       if (echilibrat(x))

               v[k++] = x; // marim nr. de elemente ale vectorului

// afisam vectorul in ordine inversa  

   for (int i = k - 1; i >= 0; i--)

       cout << v[i] << " ";  

   return 0;

}

Explicație:

Sper ca ai inteles si ca te-am ajutat!

Alte întrebări interesante