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:
#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!