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

Fiind dat un număr de 5 cifre, sa se construiască inversul si sa se facă media aritmetica a cifrelor sale.Se va afișa partea întreagă a mediei.


ovidiubg1p84um2: c++ sau pseudocod?
alexisconrad: C++
boiustef: dar ce facem cu inversul????

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

using namespace std;

int num, inv, cif, suma, med;

int main()

{

   cout << "num="; cin >> num;

   while (num)

   {

       cif=num%10;

       inv=inv*10+cif;

       num=num/10;

   }

   cout << inv << endl;

   int nrcif=0;

   while (inv)

   {

       cif=inv%10;

       ++nrcif;

       suma=suma+cif;

       inv=inv/10;

   }

   med=suma/nrcif;

   cout<< med;

   return 0;

}

Explicație:

am afisat si inversul (hotărăşti tu dacă trebuie...)

cu nrcif am numărat câte cifre are inversul  (nu coincide numărul de cifre a numărului introdus cu nr de cifre a inversului pt. a afla media aritmetică a cifrelor inversului. De exemplu se introduce un număr de 5 cifre 30400, atunci inversul va fi 403 şi deci are 3 cifre

Răspuns de CinevaFaraNume
3

Răspuns:

#include <iostream>

#include <cstdlib>

using namespace std;

int main(){

int n,inv=0,s=0, nrcif=0;

div_t div_struct;

cin >> n;

while((div_struct = div(n,10), div_struct.rem)==0)n=div_struct.quot;// scapam de 0-urile de la sfarsitul numarului

while(n){

 div_struct = div(n, 10);

 s += div_struct.rem;

 nrcif++;

 inv = 10*inv + div_struct.rem;

 n = div_struct.quot;

}

cout << inv << ' ';

if(nrcif != 0)cout << s/nrcif;

else        cout << "NaN";

}

Explicație:

Se scot 0-urile de la sfarsit si apoi se calculeaza suma cifrelor si inversul numerului in acelasi timp.

Structura div_t este o metoda de a retine catul si restul unei impartiri: catul = membrul quot al structurii si restul = membrul rem al structurii.


boiustef: frumoasă rezolvare, dar cred se căuta ceva mai pe înţeles... :)))
Alte întrebări interesante