본문 바로가기

카테고리 없음

[C언어] 최대공약수 구하기 - 설계 및 구현


void main()
{
	int m, n, temp;
	err:
	printf("두 개의 정수를 입력해 주세요 : ");
	scanf("%d %d", &m, &n);

	if((m < 0) || (n < 0))
	{
		printf("입력값이 잘못되었습니다. 다시 입력해 주세요.\n\n");
		goto err;
	}

	back:
	if(n > m)
	{
		temp = n;
		n = m;
		m = temp;
	}
	m = m - n;
	if(m != 0)goto back;
	printf("두 수의 최대공약수는 %d입니다.\n", n);
}


우선 두 개의 정수를 입력받는다. 입력을 받았으니 입력 받은 값이 오류 범위에 들어가는지 확인한다. 확인이 끝났다면 유클리드 호제법의 알고리즘되로 구현하면 된다.


아직 어려운 예제가 아니기 때문에 자세히 설명할 부분이 없고 설계단계가 자꾸 생량된다. 그리고 예제나 책에서 배울 때에는 오류범위에 대한 요구사항이 없는 곳이 많다.


나중에 뭐하나 만들어 보면 알겠지만 오류검사가 매우 중요하다. 모든 사용자가 똑같은 방법으로 프로그램을 사용하는 것이 아니기 때문에 실행 도중 멈추거나 종료가 된다면 해당 프로그램에 대해 불신이 생기기 때문에 조심해야 한다.