Informatică, întrebare adresată de AlexP, 9 ani în urmă

Am pus numarul 11 sa il ridice la patrat si imi da raspunsul 120? De ce? Cu unele numere merge, cu altele nu?
C++
#include
#include
using namespace std;

int main()
{long int n;
cout<<"n=";
cin>>n;
if (n!=0)
{
n=pow(n,2); //daca aici pun n*=n merge programul, dar nu inteleg dc nu merge cu pow
}
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de StarBack
1
Salut. In primul rand functia pow() returneaza un tip de data si anume double, deci ar trebuii sa declari variabila ca fiind double  (double n sau long double, depinde cu ce numere lucrezi). O alta idee este ca poti direct sa afisezi pow() fara a ii se mai atribuii unei variabile. Ar trebuii sa ii pui un cast in fata de exemplu: cout<<(long long)(instructiune);. In al doilea rand mai este o problema cu functia pow(), aceasta cand primeste o valoare mare, de exemplu : 10000 el va afisa 99999999. De asemenea putem evita aceasta problema prin aceasta solutie: round(pow(n ,2)); Aceasta va rotunjii valoarea si va afisa numarul corect. Ti-am lasat solutile de mai sus ca sa stii cum sa-ti rezolvi problemele, in caz ca apar. De asemnea ti-am lasat si un exemplu care iti respecta ideea ta, mai jos. Iti urez succes in continuare!
Anexe:

AlexP: pentru ce ai folosit biblioteca conio.h? pana acum am lucrat doar cu isotream si putin math.h... mai sunt si alte biblioteci importante pentru clasa a 9-a?
StarBack: Am folosit libraria conio.h pentru a apela functia getch(). Tu poti sa nu o folosesti deocamdata, eu unul o folosesc pentru aspectul din consola si la anumite probleme care necesita acesta librarie. In clasa a -9-a se lucreaza in principal cu iostream si math.h , iar daca ajungeti la fisiere text o sa lucrati si cu libraria <fstream>. Succes!
AlexP: ok ms
Alte întrebări interesante