Circle area

  • Thread starter JamesU
  • Start date
  • #1
JamesU
Gold Member
750
3

Main Question or Discussion Point

What's wrong with this C++ project I'm working on? it's supposed to find the area of a circle:

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
int pi = 3.14
int rad
int radsqr = rad*rad
cout << "radius of the circle:" <<
cin >> rad
cout >> "The radius of the circle is about:" << radsqr*pi << end1;

system("PAUSE");
return EXIT_SUCCESS;
}
 

Answers and Replies

  • #2
LeonhardEuler
Gold Member
859
1
It's been a while since I've done programming, but looking at it quickly, I just notice that you said int pi =3.14, but int only stores integers so your really saying int pi =3 . This may not be the only problem, but its the one that I see.
 
  • #3
dduardo
Staff Emeritus
1,890
3
Ahh what a mess!!! Try this:

Code:
double pi = 3.14 ;
double rad ;
cout << "radius of the circle:" ;
cin >> rad ;
cout << "The radius of the circle is about:" << rad*rad*pi << endl ;
 
Last edited:
  • #4
JamesU
Gold Member
750
3
oh, I meant 'the area of the circle is about:'

but thanks.
 
  • #5
LeonhardEuler
Gold Member
859
1
Oh, and you square rad before it gets the input from the user. That means that since rad starts out as random garbage before you give it a value, radsqr is random garbage squared. You have to square it after the line that says cin<<... to get what you want. So if you make that change and change the int's to float's it should work.
 
  • #6
JamesU
Gold Member
750
3
grrr....Now I can't get the circumference to show up:
Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{

double pi = 3.14 ;
int rad ;
cout << "radius of the circle:" ;
cin >> rad ;
cout << "The area of the circle is about:" << rad*rad*pi << endl;
cout << "The circumference of the circle is about:" << rad*2*pi <<
    system("PAUSE");
    return EXIT_SUCCESS;
}
it only displays the area
 
  • #7
dduardo
Staff Emeritus
1,890
3
Actually you probably want rad to be double too since you can have decimal values.

Why do you have a hanging << at the end of the circumference line? Dont' forget the endl;
 
  • #8
JamesU
Gold Member
750
3
it says:

stupid dev C++ said:
`end1' is undeclared (first use this function)
:grumpy:
 
  • #9
LeonhardEuler
Gold Member
859
1
It's endl, not end1(end-lowercase L, not end-one)
 
  • #10
dduardo
Staff Emeritus
1,890
3
Its the letter "L", but lower case. Not the number "1"
 
  • #11
JamesU
Gold Member
750
3
oh, I'm stupid. It's the font on my compiler that's confusing me
 
  • #12
JamesU
Gold Member
750
3
my formula calculation is complete:

Radius of the circle: 3
The area of the circle is about: 28.26
The circumference of the circle is about: 18.84
The diameter of the circle is: 6

muahaha :devil:
 
  • #13
dduardo
Staff Emeritus
1,890
3
Congrats! Now try something more difficult like calculate pascal's triangle.
 
  • #14
JamesU
Gold Member
750
3
I'll work my way up.

what was pascal's triangle? the 3/4/5 one? in trig?
 
  • #15
JamesU
Gold Member
750
3
aha! basic trig :cool:

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
double hyp
double opp
double adj
cout << "Input sides of a right triangle
cout << "Hypotenuse:" << endl;
cin >> hyp
cout << "opposite" << endl;
cin >> opp
cout << "adjacent" << endl;
cin >> adj
cout << "Triangle's properties are:" << endl;
cout << "Sine:" adj/hyp " Cosine:" opp/hyp " Tangent:" opp/adj
system("PAUSE");
return EXIT_SUCCESS;
}
 
  • #16
dduardo
Staff Emeritus
1,890
3
  • #17
JamesU
Gold Member
750
3
unfortunately, I do not understand that :frown:

The flaw in my trig program is that anyone can put the hypotenuse as a smaller length than the opposite or adjacent sides. could I do an if statement that if this happens, function main() will execute again?
 
  • #18
dduardo
Staff Emeritus
1,890
3
Or you could just have a loop that continues to ask for the hypotenuse until it is an accepatable value.
 
  • #19
JamesU
Gold Member
750
3
something like?

for ((hyp<opp)||(hyp<adj))
{
cin >> hyp
}
 
  • #20
dduardo
Staff Emeritus
1,890
3
A do while loop would be appropriate:

do {
cin >> hyp ;
} while ( (hyp < opp) || (hyp<adj) ) ;
 
  • #21
JamesU
Gold Member
750
3
okay, and where would I put it in the code? right after sin cos and adj are specified, right?
 
  • #22
dduardo
Staff Emeritus
1,890
3
Well, in order to compare hyp you need to know the value of opp and adj, so after you get those to values then you can stick the above code in.

Programming is a logical process. Whatever the flow of the code, it has to make sense. You can't just be comparing variables that don't have any specified value.
 
  • #23
JamesU
Gold Member
750
3
now it says that there should be a semicolon before the variable declaration, like:

;double

and it says that on that same line, there's a missing terminating character.

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
double hyp
double opp
double adj
cout << "Input sides of a right triangle
cout << "Hypotenuse:" << endl;
cin >> hyp
cout << "opposite" << endl;
cin >> opp
cout << "adjacent" << endl;
cin >> adj
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
double hyp
double opp
double adj
cout << "Input sides of a right triangle
cout << "Hypotenuse:" << endl;
cin >> hyp
cout << "opposite" << endl;
cin >> opp
cout << "adjacent" << endl;
cin >> adj
cout << "Triangle's properties are:" << endl;
cout << "Sine:" adj/hyp " Cosine:" opp/hyp " Tangent:" opp/adj
system("PAUSE");
return EXIT_SUCCESS;
}
cout << "Triangle's properties are:" << endl;
cout << "Sine:" adj/hyp " Cosine:" opp/hyp " Tangent:" opp/adj
system("PAUSE");
return EXIT_SUCCESS;
}
 
  • #24
arildno
Science Advisor
Homework Helper
Gold Member
Dearly Missed
9,970
132
In order to get a better precision in your pi-value than 3.14, a common strategy is to define your pi as follows:

double pi=4*atan(1);

Where atan is the arcus-tangent function.
If your machine doesn't accept "atan()", try arctan() instead.
 
  • #25
JamesU
Gold Member
750
3
can anyone help with my trig functions?
 

Related Threads on Circle area

  • Last Post
Replies
1
Views
2K
Replies
20
Views
29K
Replies
2
Views
798
Top