از این روش هم میتونید استفاده کنید.
یک متغیر از نوع ساختاری به نام Circle تعریف میکنید و نامش را c1 میگذارید.
و دادهٔ شعاع دایره را درون آن ذخیره میکنید.
* در اینجا c1 متغیری است از جنس Circle
* خود Circle یک ساختار(Structure) است. این نوع دارای سه قلم داده است.
سپس متغیر c1 را به تابع محاسبهگر calculate ارسال میکنید.
محاسبات را در تابع انجام میدهید و c1 را که به تابع ارسال کردید پر میکنید.
در پایان متغیر c1 را از تابع برمیگردانید و در تابع صدا زننده main از اون استفاده میکنید.
البته میشد با استفاده از فراخوانی با ارجاع و کاربرد اشارهگرها حافظه را بهتر مدیریت کرد(به جای خود متغیر اشارهگر به اون رو ارسال کرد) ولی در اینجا همین شیوه برای توضیح مناسبه.
#include <stdio.h>
#define PI 3.14f /* Define the value of pie */
typedef struct Circle {
double RADIOUS;
double ARIA;
double PERIMETER;
} Circle;
Circle calculate(Circle c){
c.ARIA = PI * c.RADIOUS * c.RADIOUS;
c.PERIMETER = 2 * PI * c.RADIOUS;
return c;
}
int main(void) {
double radius=0;
/* Taking input of the radious of the circle from the user */
printf("Enter radius of the Circle:\n");
scanf("%lf", &radius);
Circle c1;
c1.RADIOUS=radius;
// call a function, pass structure, return structure
c1 = calculate(c1);
printf("Perimeter: %0.4lf\n", c1.PERIMETER);
printf("Area: %0.4lf\n", c1.ARIA);
return 0;
}
اجرا
clang -Wall run.c -o run
./run