GitzZz
(Rafalwiecek29081994)
#1
Witam napisałem prosty programik który oblicza pole i obwód koła z dokładnością do 3 miejsc po przecinku niestety nie przechodzi on wszystkich testów
#include
#include
using namespace std;
int main()
{
int y;
double r;
cin>>r;
if(r!=0)
{
double pole=M_PI*(r*r);
double obwod=2*(M_PI*r);
y = pole * 10000;
if (y % 10 >= 5) y += 10;
pole=(y / 10) * 0.001;
y=obwod*10000;
if(y%10 >=5)y+=10;
obwod=(y/10)*0.001;
cout<
cout<
}
else
{
cout<<"0.000"<<"\n";
cout<<"0.000"<<"\n";
}
system("pause");
return 0;
}
co robię źle ?
dumdum
(Zenstr)
#2
Jakich testów?
Poco to?
Do wyświetlania 3 liczb po przecinku masz:
#include
,oraz
cout<
na poczatku funkcji main
dumdum
(Zenstr)
#4
To chyba gadżet z C.
Można bez
#include
,tylko tak
cout.setf(ios_base::fixed,ios_base::floatfield);
cout.precision(3);
GitzZz
(Rafalwiecek29081994)
#5
tych testów
Zobacz
hmm o precision znam ale tego fixed nie dzięki za pomoc 
ale i tak wszystkiego nie zalicza 
dumdum
(Zenstr)
#6
No to działa tak jak tam chcą dla liczby 7.0 mam taki sam wynik:
#include
#include
using namespace std;
int main()
{
cout.setf(ios_base::fixed,ios_base::floatfield);
cout.precision(3);
double r;
cin>>r;
if(r!=0)
{
cout<<"pole = "<
cout<<"obwod = "<
}
else
{
cout<<"0.000"<<"\n";
cout<<"0.000"<<"\n";
}
system("pause");
return 0;
}
Ewentualnie M_PI zamień na stałą const double Pi = (nie pomietam dokładnie ile tam jest liczb po przecinku
);