c 언어 포인터를 이용한 배열의 총 합 인데 함수를 하나로 압축이 가능할까요?

조회수 3037회

아래 코드가 포인터를 이용하지 않고 그냥 함수 2개를 사용해서 각각 배열의 합을 구한 코드 인데요. 밑에 코드를 바탕으로 포인터를 이용해서 하나의 함수로 출력하고 싶습니다.

'''코드'''

int addarray(int *array1, int i) {

int sum1 = 0;
for (int i = 0; i < 10; i++) {
    sum1 = sum1+array1[i];
}
return  sum1;

}

int addarray2(int *array2, int j) {

int sum2 = 0;
for (int j = 0; j < 4; j++) {
    sum2 = sum2+array2[j];
}
return  sum2;

}

int main(void) {

int array1[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int array2[4] = { 0, 0, 0, 0 };
printf("The sum of the elements in array1 is %d\n", addarray(array1, 10));
printf("The sum of the elements in array2 is %d\n", addarray2(array2, 4));
return 0;

} '''코드'''

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • int addarray(int *array, int count) 
    {
        int sum = 0;
    
        for (int i = 0; i < count; i++) 
        {
            sum += array[i];
        }
    
        return  sum;
    }
    
    int main(void) 
    {
        int array1[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        int array2[4] = { 0, 0, 0, 0 };
    
        printf("The sum of the elements in array1 is %d\n", addarray(array, 10));
        printf("The sum of the elements in array2 is %d\n", addarray(array, 4));
    
        return 0;
    }
    

    요렇게 하시면 되겠네요^

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • int addarray(int *array1, int index)
    {
        int sum = 0;
        for (int i = 0; i < index; i++)
            sum += array1[i];
    
        return sum;
    }
    

    이런식으로 for문에 매개변수 index를 활용하시면 될것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)