https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=327353769&mode=answer
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# define ERROR_ 1
typedef struct Triangle
{
double bottomLine; // 밑변
double heightLine; // 높이
double longLine;
}Tri;
// 동적할당 및 데이터 초기화 ___________
void _init_(Tri** tparam);
// 메모리 해제 ________________________
void _memoryFree_(Tri** tparam);
// 밑변, 높이 입력_____________________
void _numberInput_(Tri** tparam);
// 빗변의 길이 출력____________________
void _longLinePrintf_(Tri** tparam);
int main(void)
{
Tri* tnode = NULL;
_init_(&tnode);
_numberInput_(&tnode);
_longLinePrintf_(&tnode);
_memoryFree_(&tnode);
return 0;
} // end of main function
// 동적할당 및 데이터 초기화 ___________
void _init_(Tri** tparam)
{
(*tparam) = (Tri*)malloc(sizeof(Tri));
if ((*tparam) == NULL)
{
printf("malloc error");
exit(ERROR_);
}
else // (*tparam) != NULL
{
(*tparam)->bottomLine = 0.0;
(*tparam)->heightLine = 0.0;
(*tparam)->longLine = 0.0;
}
} // end of _init_ function
// 메모리 해제 ________________________
void _memoryFree_(Tri** tparam)
{
free((*tparam));
} // end of _memoryFree_ function
// 밑변, 높이 입력_____________________
void _numberInput_(Tri** tparam)
{
printf("밑변? ");
scanf_s("%lf", &(**tparam).bottomLine);
printf("높이? ");
scanf_s("%lf", &(**tparam).heightLine);
}
// 빗변의 길이 출력____________________
void _longLinePrintf_(Tri** tparam)
{
double c =
((**tparam).bottomLine * (**tparam).bottomLine) +
((**tparam).heightLine * (**tparam).heightLine);
(** tparam).longLine = sqrt(c);
printf("빗변의 길이: %lf\n", (** tparam).longLine);
}
'언어 > c언어' 카테고리의 다른 글
c언어 linkedlist (0) | 2019.12.31 |
---|---|
c언어 네이버 풀이 중첩 for문을 사용해서 3을 입력하면 (0) | 2019.05.06 |
네이버 풀이 (0) | 2018.12.01 |
네이버 문제 풀이 - 최대공약수 (0) | 2018.11.28 |
네이버 지식이 풀이 (0) | 2018.11.28 |