티스토리 뷰

1581. swap함수 만들기 

이 문제는 두 변수의 값을 바꾸는 함수를 구현하는 문제입니다. 아래 내용을 참고해서 풀어보세요.

 

함수명 : myswap

매개 변수 : 정수형 포인터 변수 변수 2개(매개변수를 반드시 int∗로 사용)

반환 값 : 없음

함수 내용 : 첫 번째 포인터가 가리키는 변수의 값이 두 번째 포인터가 가리키는 변수의 값보다 클 경우 두 값을 교환

 

1회. 문제 그대로 풀기
#include <stdio.h>

void myswap(int * pa, int * pb){
    if(*pa > *pb){
        int temp = *pa;
        *pa = *pb;
        *pb = temp;
    }else return;
}

int main(){
    int a, b;
    scanf("%d%d", &a, &b);
    myswap(&a, &b);
    printf("%d %d", a, b);

    return 0;
}

 

 

2회. 아래 사항을 참고해서 풀기

1. 변수 a와 b의 주소를 저장하는 포인터 변수 pa, pb
2. 포인터 변수의 주소를 매개변수로 받는 myswap 함수

3. 첫 번째 포인터가 가리키는 변수의 값이 두 번째 포인터가 가리키는 변수의 값보다 클 경우 저장된 주소를 교환
4. 출력 형태는 아래와 같다

입력 : 10 20
swap함수 호출 전 : 10 20
swap함수 호출 후 : 20 10

 

#include <stdio.h>

void myswap(int ** pa, int ** pb){
    if(**pa > **pb){
        int *temp = *pa;
        *pa = *pb;
        *pb = temp;
    }else return;
}

int main()
{
    int a, b;
    int *pa = &a, *pb = &b;
    scanf("%d%d", &a, &b);

    printf("swap함수 호출 전 : %d %d\n", *pa, *pb);
    myswap(&pa, &pb);
    printf("swap함수 호출 후 : %d %d\n", *pa, *pb);

    return 0;
}

 

 

 

 

댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday