The area of a circle is A = π r² and the circumference is C = 2πr, where r is the radius. This program computes both from a user-supplied radius. Key points: use radius * radius instead of pow(radius, 2) (no need for the math library for a simple square), define π as a high-precision constant with #define, and validate the input (radius cannot be negative). The original post used conio.h, void main, clrscr(), and #define PI 3.142 (only 4 significant figures); this rewrite fixes all of those.
| Radius | Area (π r²) | Circumference (2πr) |
|---|---|---|
| 1 | 3.1416 | 6.2832 |
| 5 | 78.5398 | 31.4159 |
| 7 | 153.9380 | 43.9823 |
| 10 | 314.1593 | 62.8319 |
C Program: Area and Circumference of a Circle
/* Find the area and circumference of a circle given the radius
* Compile: gcc -ansi -Wall -Wextra circle.c -o circle -lm */
#include <stdio.h>
#include <math.h>
#define PI 3.14159265358979323846
int main(void)
{
double radius, area, circumference;
printf("Enter the radius: ");
if (scanf("%lf", &radius) != 1 || radius < 0.0) {
printf("Enter a non-negative radius.\n");
return 1;
}
area = PI * radius * radius;
circumference = 2.0 * PI * radius;
printf("Radius = %.4f\n", radius);
printf("Area = %.4f\n", area);
printf("Circumference = %.4f\n", circumference);
return 0;
}
How to Compile and Run
gcc -ansi -Wall -Wextra circle.c -o circle -lm
./circle
Note: -lm is not strictly needed here since we do not call any math functions, but it is included for completeness when the header is present. If the linker complains, remove -lm.
Sample Output
Enter the radius: 5 Radius = 5.0000 Area = 78.5398 Circumference = 31.4159 Enter the radius: 7 Radius = 7.0000 Area = 153.9380 Circumference = 43.9823 Enter the radius: 0 Radius = 0.0000 Area = 0.0000 Circumference = 0.0000
Code Explanation
- PI as a #define constant — using a named constant instead of the literal 3.14159 everywhere means you change it in one place if you want more or less precision. The value here has 20 digits — well beyond what
doublecan represent (about 15–17 significant decimal digits), so this is the most precise value possible in C’sdouble. radius * radiusinstead ofpow(radius, 2)—pow()is a general-purpose floating-point function that handles arbitrary real exponents. For a simple integer exponent like 2, multiplying directly is both faster and avoids linking the math library just for this purpose. Usepow()only when the exponent is non-integer or very large.- Input validation:
radius < 0.0— a negative radius has no geometric meaning. Checking after reading prevents computing a negative area, which would silently produce a wrong result. Zero radius is valid (degenerate circle) and outputs zeros correctly. doubleinstead offloat—floathas only about 6–7 significant digits of precision. For geometric calculations where rounding errors accumulate,double(15–17 digits) is the better default. The original post usedfloatwith%f; this rewrite usesdoublewith%lfforscanfand%f/%.4fforprintf.
What This Program Teaches
- Named constants with #define — always name magic numbers.
#define PI 3.14159265358979323846is clearer than scattering 3.14 throughout the code and avoids subtle bugs where you type 3.1415 in one place and 3.14159 in another. - Choosing the right arithmetic — prefer simple multiplication over library functions when both are correct.
r * rfor squaring is idiomatic C. Reservepow()for cases where the multiplication chain would be unwieldy (e.g.,pow(x, 17)) or when the exponent is fractional (pow(x, 0.5)= √x). - double vs float — in modern C,
doubleis the default floating-point type.floatis used when memory is genuinely scarce (embedded systems, large arrays). For everyday scalar arithmetic, always usedouble.
Related Programs
- Area of an Isosceles Triangle in C
- Quadratic Equation Roots in C
- Mean, Variance, Standard Deviation in C
- Simple Calculator Using Switch in C
- Sum of N Natural Numbers in C
Recommended book:
The C Programming Language — Kernighan & Ritchie (India) |
(US)
|
C Programming: A Modern Approach — K.N. King (India) |
(US)
Practice what you learned: C Aptitude Questions — or try our C Programming Quiz App on Android.