혜랑's STORY

[C_멘토링] 7주차 과제 본문

2020 SISS 21기 활동/1학기 C언어

[C_멘토링] 7주차 과제

hyerang0125 2020. 6. 14. 23:58

1. 2차원 좌표 x,y를 표현하는 구조체 Point2D를 정의하고 x에는 10, y에는 20이라는 값을 넣어 출력되도록 만들기 (Typedef 사용 x)

<코드>

#include <stdio.h>

struct Point2D {
	int x;
	int y;
}P;

int main() {

	scanf("%d %d", &P.x, &P.y);

	printf("x : %d, y : %d", P.x, P.y);
    
    return 0;

}

<실행 결과>

Point2D 실행 결과(no typedef)

2. 1번 문제를 Typedef를 사용하여 풀기

<코드>

#include <stdio.h>

typedef struct{
	int x;
	int y;
}Point2D;

int main() {

	Point2D P;

	scanf("%d %d", &P.x, &P.y);

	printf("x : %d, y : %d", P.x, P.y);
    
    return 0;

}

<실행 결과>

Point2D 실행 결과(typedef)

3. 구조체를 사용하여 두 점 사이의 거리를 구하는 프로그램

<조건>

- 점의 위치(x,y 좌표값)는 입력받는다.

- math.h 헤더 파일에 있는 sqrt 함수를 사용해도 된다.

- 두 점 사이의 거리를 출력한다.

<코드> 

#include <stdio.h>
#include <math.h>    // sqrt 함수가 선언된 헤더 파일

struct Point2D {
    int x;
    int y;
};

int main()
{
    struct Point2D p1;    // 점1
    struct Point2D p2;    // 점2

    scanf("%d %d %d %d", &p1.x, &p1.y, &p2.x, &p2.y);

    int a = p2.x - p1.x;
    int b = p2.y - p1.y;

    double c = sqrt((a * a) + (b * b));    // (a * a) + (b * b)의 제곱근을 구함

    printf("%f\n", c);

    return 0;
}

<실행 결과>

두 점사이의 거리 실행 결과

 

'2020 SISS 21기 활동 > 1학기 C언어' 카테고리의 다른 글

[2020-2학기 C과제 5주차]  (0) 2020.11.01
[C_멘토링] 6주차 과제  (0) 2020.06.07
[C_멘토링] 5주차 과제  (0) 2020.05.31
[C_멘토링] 4주차 과제  (0) 2020.05.22
[C_멘토링]3주차 과제  (0) 2020.05.17