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.
Răspunsuri la întrebare
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:
#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.