본문 바로가기

카테고리 없음

[C언어] 좌표 입력받아 사각형 넓이 구하기 - 설계 및 구현

void main()
{
	int x_1, x_2, y_1, y_2;
	int height, width, area;
	int temp;

	back:
	printf("첫 번째 좌표를 입력해 주세요 : ");
	scanf("%d %d", &x_1, &y_1);
	printf("두 번째 좌표를 입력해 주세요 : ");
	scanf("%d %d", &x_2, &y_2);

	if((x_1 == x_2) || (y_1 == y_2))
	{
		printf("잘못된 좌표를 입력하셨습니다. \n\n");
		goto back;
	}
	if(x_1 > x_2)
	{
		temp = x_1;
		x_1 = x_2;
		x_2 = temp;
	}
	if(y_1 > y_2)
	{
		temp = y_1;
		y_1 = y_2;
		y_2 = temp;
	}

	width = x_1 - x_2;
	height = y_1 - y_2;
	area = width * height;

	printf("사각형의 넓이는 %d 입니다.\n", area);
}

좌표 두 개를 입력받은 뒤 오류가 있는지 검사한다. 입력 받은 두 좌표를 비교하는데 x의 두 값이 같거나, y의 두 값이 같으면 오류가 있는 것이므로 다시 입력받는다.


나머지 두 좌표를 따라 구할 필요가 없이 가로 길이와 세로 길이를 구하면 된다. 가로 길이는 x값의 차이, 세로 길이는 y값의 차이로 구할 수 있다. 이 때, 입력받은 좌표의 순서는 매번 틀리므로 큰 값에서 작은 값을 빼야 한다.


이제 가로 길이와 세로 길이를 알았으므로 곱해서 넓이를 구해 출력하면 된다.