문제
2차원 좌표 상의 여러 점의 좌표 (x,y)가 주어졌을 때, 각 사분면과 축에 점이 몇 개 있는지 구하는 프로그램을 작성하시오.

입력
첫째 줄에 점의 개수 n (1 ≤ n ≤ 1000)이 주어진다. 다음 n개 줄에는 점의 좌표 (xi, yi)가 주어진다. (-106 ≤ xi, yi ≤ 106)
출력
각 사분면과 축에 점이 몇 개 있는지를 예제 출력과 같은 형식으로 출력한다.
좌표의 사분면을 찾는 문제이다. 이 풀이에서는 포인터를 사용하였다. 사분면의 좌표 개수를 변수로 두고, 변수의 주소를 coordinate 함수에 보내 포인터로 받았다. 함수에서 사분면을 찾은 후 변수의 개수를 포인터로 증가시켰다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void coordinate(int x, int y, int* p, int* q, int* t, int* r, int* u);
int main()
{
int n, i, x, y;
int Q1 = 0, Q2 = 0, Q3 = 0, Q4 = 0, AXIS = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d %d", &x, &y);
coordinate(x, y, &Q1, &Q2, &Q3, &Q4, &AXIS);
}
printf("Q1: %d\n", Q1);
printf("Q2: %d\n", Q2);
printf("Q3: %d\n", Q3);
printf("Q4: %d\n", Q4);
printf("AXIS: %d\n", AXIS);
return 0;
}
void coordinate(int x, int y, int* p, int* q, int* t, int* r, int* u)
{
if (x == 0 || y == 0)
(*u)++;
else if (x > 0)
{
if (y > 0)
(*p)++;
else
(*r)++;
}
else if (x < 0)
{
if (y > 0)
(*q)++;
else
(*t)++;
}
}
'Algorithm > C' 카테고리의 다른 글
[백준] 2953번 : 나는 요리사다 C/C++ 문제풀이 솔루션 (0) | 2021.11.26 |
---|---|
[백준] 1259번 : 팰린드롬수 C/C++ 문제풀이 솔루션 (0) | 2021.11.24 |
[백준] 2748번 : 피보나치 수 2 C/C++ 문제풀이 솔루션 (0) | 2021.11.23 |
[백준] 2747번 : 피보나치 수 C/C++ 문제풀이 솔루션 (0) | 2021.11.23 |
[백준] 10250번 : ACM 호텔 C/C++ 문제풀이 솔루션 (0) | 2021.11.21 |
댓글