👤

HELP
Napisz program umożliwiający wprowadzenie n (0<
n<50) liczb naturalnych z zakresu long do tablicy "a". Następnie do tablicy b przepisujemy ilość cyfr parzystych danej liczby z tablicy a. Na końcu zadania musi byc wydruk tablicy "b" za pomocą jednej pętli.

Przykład

n=9

tablica a

34/71176/8733/93/887365/475/834/2766848/19


Tablica b

1/1/1/0/3/1/2/6/0


Odpowiedź :

Program wraz z komentarzami tłumaczącymi jego działanie:

#include <iostream>

using namespace std;

//funkcja obliczająca ilość cyfr parzystych w liczbie:

int ileCyfrParzystych( long x )

{

   int ile = 0;        //licznik

   

   while( x > 0 )      //pętla przechodząca przez wszystkie cyfry

   {

       long cyfra = x % 10;    //pobranie ostatniej cyfry (cyfry jedności)

       

       if( cyfra % 2 == 0 )    //jeżeli cyfra jesst parzysta

           ile ++;

           

       x /= 10;                // skrócony zapis od: x = x / 10;

   }

   //pętla pobiera ostanią liczbę a następnie ją usuwa ( 123 % 10 = 3 -> ostatnia cyfra, 123 / 10 = 12 -> usunięcie ostatniej cyfry)

   

   return ile;

}

int main()

{

   int n;

   cout << "Podaj n: ";

   cin >> n;

   

   unsigned long a[n];           //definicja tablicy która przechowuje liczby naturalne (unsigned) typu long, tablica jest rozmiaru n

   unsigned long b[n];

   

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

   {

       cout << "podaj a[" << i << "]:";

       cin >> a[i];

       

       //przypisanie do b[i] ilości cyfr parzystych w liczbie a[i]

       b[i] = ileCyfrParzystych( a[i] );

   }

   

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

   {

       cout << b[i] << " ";

   }

}