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

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 de xmrkertesx
4

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!


CinevaFaraNume: + trebuie declarate fixed sau se va afisa cu scrierea stiintifica(ultimele 2 teste)
Răspuns de CinevaFaraNume
1

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;

}

Alte întrebări interesante