반응형
구의 부피와 겉넓이를 구하는 함수 (구의 부피는, 구의 겉넓이는 )
#include <stdio.h> #include <math.h> #define PI 3.14 double ball_volume(float r); double ball_surface(float r); double ball_volume_to_surface(double r); int main() { float r; printf("구의 반지름을 입력하세요 : "); scanf_s("%f", &r); printf("반지름이 %.2f일 때 구의 부피는 %.2f 입니다.\n", r, ball_volume(r)); printf("반지름이 %.2f일 때 구의 겉넓이는 %.2f 입니다. \n", r, ball_surface(r)); printf("부피가 %.2f일 때, 겉넓이는 %.2f 입니다. \n.", ball_volume(r), (ball_volume_to_surface(ball_volume(r)))); } //구의 부피 구하는 식 double ball_volume(float r) { return (4.0) / (3.0) * (PI) * r * r * r; } //구의 겉넓이 구하는 식 double ball_surface(float r) { return 4.0 * PI * r * r; } //부피를 겉넓이로 환산하는 식 double ball_volume_to_surface(double volume) { //r을 모르니 r을 구해야했다... double r = pow(volume * (3 / 4) / (PI), 1 / 3); return volume * 3 / r; }
//구의 부피와 겉넓이에 대한 부분은 일단 패스
헤론의 공식을 이용하여 삼각형의 면적을 구하는 함수
#include <stdio.h> #include <math.h> double tri_area_heron(double a, double b, double c); int main() { double a, b, c; double area; printf("헤론의 공식을 이용해서 삼각형의 넓이를 구합니다. \n"); printf("첫번째 변의 길이를 입력하세요 : "); scanf_s("%lf", &a); printf("두번째 변의 길이를 입력하세요 : "); scanf_s("%lf", &b); printf("세번째 변의 길이를 입력하세요 : "); scanf_s("%lf", &c); area = tri_area_heron(a, b, c); if (area != 0) { printf("변의 길이가 %.2f, %.2f, %.2f인 삼각형의 넓이는 %.2f입니다. \n",a,b,c,area); } return 0; } double tri_area_heron(double a, double b, double c) { //제일 긴 변을 확인 double max = (a>b) ? (a > c ? a : c) : (b > c ? b : c); //헤론의 공식에서 기본적으로 쓰이는 s를 구함. double s = (a + b + c) / 2; // a>b>c일때 a < b+c 일때만 삼각형이 성립됨 if (max == a && a >= b + c || max == b && b >= a + c || max == c && c >= a + b) { printf("삼각형이 성립되지 않습니다. \n"); return 0; } //pow는 제곱을 구하는 함수인데 1/2 제곱은 루트와 같음. return pow(s*(s - a)*(s - b)*(s - c), 1 / 2.0); }
//헤론의 공식
반응형