본문 바로가기
C/☞

[47] 연습문제 : 함수

by TR. 2020. 7. 23.

연습문제 1)

    // 연습문제)
    // 값 교체 함수 만들기 (포인터)
    // 함수명 : swap()
    
    int a = 10;
    int b = 20;
    swap(&a, &b);
더보기
// 연습문제 : 함수
// -> 갑 교체 함수 만들기 (포인터)

void swap(int *num1, int *num2){
    int temp = *num1;
    *num1 = *num2;
    *num2 = temp;
}

int main(){
 
    int a = 10;
    int b = 20;
    swap(&a, &b);
    
    printf("a: %d, b: %d\n", a, b);


    return 0;
}

 

연습문제 2)

// 실습예제 : 함수 & 포인터
// -> 나만의 계산기 만들기

// 각 함수 실행 후,결과 출력
// printf("times:\t %.1f\n", answer);
// 더하기, 빼기, 곱하기, 나누기, 나누기(몫만), 나누기, 나머지

vdoi main(){
	int a = 5;
    int b = 3;
    int answer;
    
    printf("times:\t %.1f\n", answer);
    
    
    
    
}
더보기
// 방법 1) 포인터 사용X -> return 변수 필요 (함수의 한계)
float plus(int a, int b){
    float c = a + b;
    return c; 
}

// 방법 2) 포인터 사용O -> return 변수 없이 처리완료
void add(int *a, int *b, float *p){ // 결과를 대입할 대상(변수)이 함수지역 안에 존재하지 않기 때문에,
    *p = *a + *b;                       // 포인터 값(주소)을 매개변수로 받아 처리한다.
}

// ...
void minus(int a, int b, float *p){
    *p = a - b;
}

void times(int a, int b, float *p){
    p[0] = a * (float)b;
}

void div_f(int a, int b, float *p){
    *p = a / (float)b;              // typecasting : integer -> float
}

void div_i(int a, int b, float *p){
    *p = a / b;
}

void modulo(int a, int b, float *p){
    p[0] = a % b;
}

main main(){
    printf("\nRUN>>>\n\n");
    //

    int num1 = 5;
    int num2 = 3;
    float answer;
    float *p = &answer;

    answer = plus(num1, num2);          // 연산할 전달인자를 넣어 함수실행 후 -> 리턴값을 변수에 대입
    printf("puls:\t %.1f\n", answer);

    add(&num1, &num2, p);               // 연산할 전달인자 + 값을 저장할 변수의 주소까지 넣어 한번에 실행 및 대입
    printf("add:\t %.1f\n", answer);
    
    minus(num1, num2, &answer);
    printf("minus:\t %.1f\n", answer);

    times(num1, num2, p);
    printf("times:\t %.1f\n", answer);

    div_f(num1, num2, &answer);
    printf("div_f:\t %.1f\n", answer);

    div_i(num1, num2, &answer);
    printf("div_i:\t %.1f\n", answer);

    modulo(num1, num2, p);
    printf("modulo:\t %.1f\n", answer);



}

'C > ' 카테고리의 다른 글

[49] 마리오 무브  (0) 2020.07.23
[48] 배열과 함수  (0) 2020.07.23
[46] 함수의 종류  (0) 2020.07.23
[45] 함수 기본  (0) 2020.07.23
[44] 연습문제 : 포인터  (0) 2020.07.23

댓글