Menu
Coddy logo textTech

요약: 포인터를 이용한 배열 순회

Coddy C 여정의 Logic & Flow 섹션에 포함된 레슨 — 63개 중 11번째.

challenge icon

챌린지

쉬움

포인터 산술 연산과 배열-포인터 동등성을 사용하여 정수 배열의 모든 요소의 합을 계산하는 함수를 구현하는 C 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:

  1. 두 개의 매개변수를 받는 calculateSum이라는 이름의 함수를 만듭니다:
    • 배열을 나타내는 정수 포인터 (int *arr)
    • 배열의 요소 개수를 나타내는 정수 (size)
  2. calculateSum 함수 내부에서:
    • 변수 sum을 0으로 초기화합니다
    • 포인터 변수 ptr을 생성하고 배열의 시작 부분을 가리키도록 설정합니다
    • 포인터 산술 연산을 사용하여 배열을 순회하는 루프를 사용합니다
    • 각 반복에서 ptr이 가리키는 값을 sum에 더합니다
    • 포인터를 증가시켜 다음 요소로 이동합니다
    • 계산된 합계를 반환합니다
  3. main 함수에서:
    • 배열의 크기를 나타내는 정수 n을 읽습니다
    • 크기가 n인 정수 배열을 선언합니다
    • 입력으로부터 n개의 정수를 읽어 배열을 채웁니다
    • 배열과 그 크기를 사용하여 calculateSum 함수를 호출합니다
    • 결과를 "Sum: [value]" 형식으로 출력합니다

함수는 배열 순회를 위해 포인터 산술 연산을 사용해야 합니다. arr[i]와 같은 배열 인덱싱 표기법을 사용하지 마세요. 대신 포인터 역참조 및 증가 연산을 사용하여 배열 요소에 접근하세요.

예를 들어, 입력이 다음과 같다면:

5
10 20 30 40 50

출력은 다음과 같아야 합니다:

Sum: 150

이 챌린지는 함수가 배열을 포인터 매개변수로 받는 방법, 포인터 산술 연산을 사용하여 배열을 효율적으로 순회하는 방법, 그리고 배열 이름이 함수로 전달될 때 어떻게 자동으로 포인터로 변환되는지에 대한 이해를 테스트합니다.

직접 해보기

#include <stdio.h>

// TODO: 여기에 calculateSum 함수를 작성하세요

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // 배열 요소를 읽습니다
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: calculateSum 함수를 호출하고 결과를 저장하세요
    
    // TODO: "Sum: [value]" 형식으로 결과를 출력하세요
    
    return 0;
}

Logic & Flow의 모든 레슨