without haste but without rest
[C / 자료구조] 2주차 과제 - ADT 구현, 사각형 문제 본문
ADT 구현, 사각형 문제
#include <stdio.h>
#include <math.h>
typedef struct _coordinates {
int x;
int y;
} Point;
void input(Point *p);
void output(Point p);
double distance(Point pt1, Point pt2);
int area(Point pt1, Point pt2);
int equals(Point pt1, Point pt2);
void move(Point* pt1, Point vec);
int test() {
Point p1, p2, vec;
printf(">>");
input(&p1);
printf(">>");
input(&p2);
if (equals(p1, p2)) {
printf("두 점이 같습니다.");
return 0;
}
printf("두 점의 거리: %.3f\n", distance(p1, p2));
printf("두 점에 의한 네모의 면적: %d\n", area(p1, p2));
printf("이동할 거리: ");
input(&vec);
printf("p1 이동: ");
output(p1);
printf(" -> ");
move(&p1, vec); output(p1);
printf("\np2 이동: ");
output(p2);
printf(" -> ");
move(&p2, vec); output(p2);
}
void main() {
while (1) {
test();
printf("\n");
}
}
void input(Point *pt) {
int x, y;
scanf_s("%d %d", &x, &y);
pt->x = x;
pt->y = y;
}
void output(Point pt) {
printf("(%d, %d)", pt.x, pt.y);
}
double distance(Point pt1, Point pt2) {
double res = sqrt(
pow((pt1.x - pt2.x), 2) + pow((pt1.y - pt2.y), 2));
return res;
}
int area(Point pt1, Point pt2) {
int res = abs(pt1.x - pt2.x) * abs(pt1.y - pt2.y);
return res;
}
int equals(Point pt1, Point pt2) {
if (pt1.x == pt2.x && pt1.y == pt2.y) {
return 1;
}
return 0;
}
void move(Point* pt, Point vec) {
pt->x += vec.x;
pt->y += vec.y;
}
'Homework' 카테고리의 다른 글
[C / 자료구조] 3주차 실습문제 - 구조체 배열 스택 (0) | 2020.04.04 |
---|---|
[C / 자료구조] 3주차 실습문제 - 전역변수 스택 (0) | 2020.04.04 |
[C / 자료구조] 1주차 과제 - 하노이 탑 (0) | 2020.04.04 |
[C / 자료구조] 1주차 과제 - 재귀 (0) | 2020.04.04 |
[python/계프] 4주차 과제 - 경기 기록 (0) | 2020.04.04 |
Comments