본문 바로가기
개념/혼자 공부하는 C언어

chapter 17) 구조체를 변환하여 두 변수의 값 교환

by kiseno 2024. 9. 28.
728x90
반응형
SMALL
#include <stdio.h>

struct vision{
    double left, right;
};

struct vision exchange(struct vision robot);

int main(void){
    struct vision robot;
    printf("vision input : ");
    scanf("%lf%lf", &(robot.left), &(robot.right));
    robot = exchange(robot);
    printf("change vision : %.1lf %.1lf\n", robot.left, robot.right);

    return 0;
}

struct vision exchange(struct vision robot){
    double temp;

    temp = robot.left;
    robot.left = robot.right;
    robot.right = temp;

    return robot;
}

### 구조체 정의

- `struct vision`은 로봇의 좌우 시력을 나타내는 `left`, `right`라는 두 개의 `double` 타입 멤버를 가집니다.

### `main` 함수

- 사용자로부터 로봇의 좌우 시력 값을 입력받습니다. `scanf("%lf%lf", &(robot.left), &(robot.right));`를 통해 `robot` 구조체의 `left`와 `right` 멤버에 해당 값을 저장합니다.
- `exchange` 함수를 호출하여 로봇의 좌우 시력 값을 교환합니다. 교환된 구조체를 `robot` 변수에 다시 할당합니다.
- `printf("change vision : %.1lf %.1lf\n", robot.left, robot.right);`를 사용하여 교환된 시력 값을 출력합니다.

### `exchange` 함수

- 이 함수는 `struct vision` 타입의 인자 `robot`을 받아, 로봇의 좌우 시력 값을 교환합니다.
- 임시 변수 `temp`를 사용하여 `left`와 `right`의 값을 교환하고, 교환된 `robot` 구조체를 반환합니다.

### 코드 실행 예시

사용자가 로봇의 좌우 시력으로 `1.2`와 `2.1`을 입력하면, 출력은 다음과 같이 됩니다:

```
vision input : 1.2 2.1
change vision : 2.1 1.2
```

728x90
반응형
LIST