네이버 풀이

언어/c언어2019. 5. 18. 08:07

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