Ce am gresit ?
#include
#include
using namespace std;
int main()
{
float aria , radius , pi ;
float perimeter;
cin >> radius ;
pi=3.14159265359;
aria=pi*radius*radius;
perimeter=2*pi*radius;
cout << aria << " " << perimeter ;
return 0;
}
cerinta => https://www.pbinfo.ro/?pagina=probleme&id=2889
Răspunsuri la întrebare
Răspuns:
I.solutia mea:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
double r,pi=atan(1)*4;
cin>>r;
cout<<fixed<<setprecision(2)<<pi*r*r<<" ";
cout<<fixed<<setprecision(2)<<2*pi*r;
return 0;
}
II.solutia oficiala:
#include<bits/stdc++.h>
using namespace std;
int main()
{
double r,pi=atan(1)*4,a,p;
cin>>r;
a=pi*r*r;
p=2*pi*r;
cout<<fixed<<a<<" "<<p;
}
Explicație:
Pentru valori mai mari ale lui r trebuie să ne asigurăm că afișarea se face cu cel puțin două zecimale. În C++, acest lucru se poate face de exemplu cu ajutorul manipulatorilor fixed și/sau setprecision din header-ul iomanip..
pi=atan(1)*4,atan() este o functie din libraria cmath!
Inainte sa afisezi aria trebuie sa folosesti "fixed", altfel pentru numere mari vei avea notatie stiintifica(de exemplu 1.142e15), si trebuie crescuta precizia la double.
#include <iostream>
using namespace std;
#define pi 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
int main()
{
double aria , radius ;
double perimeter;
cin >> radius ;
aria=pi*radius*radius;
perimeter=2*pi*radius;
cout << fixed << aria << " " << perimeter ;
return 0;
}