본문 바로가기
C/☞

[48] 배열과 함수

by TR. 2020. 7. 23.

. 배열 출력 함수 만들기

 

// 배열과 함수
// 배열을 출력하는 함수를 만들어보자

void print_arr(int *p, int count){
    for(int i=0; i<count; i++){
        printf("%d ", p[i]);
    }

}

void main(){
  
    int count = 5;
    int arr[5] = {10,20,30,40,50};

    print_arr(&arr[0], count);



}

 

. 연습문제

 

    /*
        # 배열 기본문제 : 함수 사용
        문제 1) 전체 합 리턴
        문제 2) 4의 배수의 합 리턴
        문제 3) (인덱스로) 값 교체
        문제 4) (값으로) 값 교체
    */

   int count = 5;
   int arr[5] = {10, 20, 30, 40, 50};
더보기
int sum(int *p, int count){
    int answer = 0;
    for(int i=0; i<count; i++){
        answer += p[i];
    }
    return answer;
}
int sum_quart(int *p, int count){
    int answer = 0;
    for(int i=0; i<count; i++){
        if(p[i] % 4 == 0){
            answer += p[i];
        }
    }
    return answer;
}
void swap_idx(int *p, int index1, int index2){
    int temp = p[index1];
    p[index1] = p[index2];
    p[index2] = temp;
}
void swap_val(int *p, int value1, int value2, int count){
    int idx1 = -1;
    int idx2 = -1;
    for(int i=0; i<count; i++){
        if(p[i] == value1){
            idx1 = i;
        }
        if(p[i] == value2){
            idx2 = i;
        }
    }
    int temp = p[idx1];
    p[idx1] = p[idx2];
    p[idx2] = temp;
}
void print_arr(int *p, int count){
    for(int i=0; i<count; i++){
        printf("%d ", p[i]);
    }
    printf("\n");
}

int main(){
    /*
        # 배열 기본문제 : 함수 사용
        문제 1) 전체 합 리턴
        문제 2) 4의 배수의 합 리턴
        문제 3) (인덱스로) 값 교체
        문제 4) (값으로) 값 교체
    */

     int count = 5;
     int arr[5] = {10, 20, 30, 40, 50};

     int *p = &arr[0];

     // 1)
     sum(p, count);

     // 2)
     sum_quart(p, count);

     // 3)
     swap_idx(p, 0, 3);
     print_arr(p, count);
    
     // 4)
     swap_val(p, 30, 40, count);
     print_arr(p, count);

   
    return 0;
}

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

[49]-A. 마리오 무브  (0) 2020.07.23
[49] 마리오 무브  (0) 2020.07.23
[47] 연습문제 : 함수  (0) 2020.07.23
[46] 함수의 종류  (0) 2020.07.23
[45] 함수 기본  (0) 2020.07.23

댓글