본문 바로가기
C언어

[C언어] 삼각형, 사각형, 원을 동시에 표현할 수 있는 공용체를 설계하시오 삼각형은 밑변과 높이, 사각형은 가로와 세로, 원은 반지름만을 저장하도록 하라

by 이얏호이야호 2020. 5. 11.

공부하시는대에 도움이 됐으면 좋겠습니다.

답안코드 확인해주세요!

 

더보기
#include <stdio.h>

#include <math.h>

enum shape_type {

 TRIANGLE, RECTANGLE, CIRCLE

}

;

struct shape {

 int type;

 union {

 struct {

 int base, height;

 }

 tri;

 struct {

 int width, height;

 }

 rect;

 struct {

 int radius;

 }

 circ;

 }

 p;

}

;

int main(void) {

 struct shape s;

 enum shpae_type type;

 printf("도형의 타입을 입력하시오(0, 1, 2): ");

 scanf("%d", &type);

 switch(type) {

 case TRIANGLE:

 printf("밑변과 반지름을 입력하시오(예를 들어서 100 200): ");

 scanf("%d %d", &s.p.tri.base, &s.p.tri.height);

 printf("면적은 %d\n", (int)(0.5*s.p.tri.base*s.p.tri.height));

 break;

 case RECTANGLE:

 printf("가로와 세로의 길이를 입력하시오(예를 들어서 100 200):");

 scanf("%d %d", &s.p.rect.width, &s.p.rect.height);

 printf("면적은 %d\n", (int)(s.p.rect.width*s.p.rect.height));

 break;

 case CIRCLE:

 printf("반지름을 입력하시오(예를 들어서 100): ");

 scanf("%d", &s.p.circ.radius);

 printf("면적은 %d\n", (int)(3.14*s.p.circ.radius*s.p.circ.radius));

 break;

 }

 return 0;

}

 


더 많은 C코드가 보고 싶다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

댓글