[c++]obliczani pola i obwodu koła

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 ?

Jakich testów?

Poco to?

Do wyświetlania 3 liczb po przecinku masz:

#include

,oraz

cout<

na poczatku funkcji main

printf("%.3f", pole);

biblioteka stdio.h

To chyba gadżet z C.

Można bez

#include

,tylko tak

cout.setf(ios_base::fixed,ios_base::floatfield);

 cout.precision(3);

tych testów

Zobacz

hmm o precision znam ale tego fixed nie dzięki za pomoc :slight_smile:

ale i tak wszystkiego nie zalicza :frowning:

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 :stuck_out_tongue: );