Chapter. 9

김동현·2022년 10월 24일
0

배열을 처리하는 함수

#include <stdio.h>

void print_ary(int *pa);                    // 함수 선언

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

    print_ary(ary);                         // 배열명을 주고 함수 호출

    return 0;
}

void print_ary(int *pa)                     // 매개변수로 포인터 선언
{
    int i;

    for (i = 0; i < 5; i++)
    {
        printf("%d", pa[i]);                // pa로 배열 요소 표현식 사용
    }   
}

  

배열 요소의 개수가 다른 배열도 출력하는 함수

배열의 값을 출력하는 함수는 첫 번째 배열 요소의 주소만 알면 되므로 배열 요소의 개수가 달라도 함수의 구현 방법은 같다. 다만 배열 요소의 개수가 바뀌면 출력문의 반복 횟수가 달라지므로 함수의 수정은 불가피하다.

#include <stdio.h>

void print_ary(int *pa, int size);                  // 함수 선언, 매개변수 2개

int main(void)
{
    int ary1[5] = {10, 20, 30, 40, 50};             // 배열 요소의 개수가 5개인 배열
    int ary2[7] = {10, 20, 30, 40, 50, 60, 70};     // 요소의 개수가 7개인 배열

    print_ary(ary1, 5);                             // ary1 배열 출력, 배열 요소의 개수 전달
    printf("\n");
    print_ary(ary2, 7);                             // ary2 배열 출력, 배열 요소의 개수 전달

    return 0;
}

void print_ary(int *pa, int size)                   // 배열명과 배열 요소의 개수를 받는 매개변수 선언
{
    int i;

    for (i = 0; i < size; i++)                      // size값에 따라 반복 횟수 결정
    {
        printf("%d", pa[i]);
    }
}

  

배열에 값을 입력하는 함수

#include <stdio.h>

void input_ary(double *pa, int size);
double find_max(double *pa, int size);

int main(void)
{
    double ary[5];
    double max;
    int size = sizeof(ary) / sizeof(ary[0]);

    input_ary(ary, size);
    max = find_max(ary, size);
    printf("배열의 최댓값 : %.lf\n", max);

    return 0;
}

void input_ary(double *pa, int size)
{
    int i;

    printf("%d개의 실수값 입력 : ", size);
    for (i = 0; i < size; i++)
    {
        scanf("%lf", pa + i);
    }
}

double find_max(double *pa, int size)
{
    double max;
    int i;

    max = pa[0];
    for (i = 1; i < size; i++)
    {
        if (pa[i] > max ) max = pa[i];
    }
    return max;
}


 

키워드로 끝내는 핵심 포인트

배열을 출력하는 함수에 필요한 것은 배열명이다.

배열에 입력하는 함수에 필요한 것도 배열명이다.

배열의 크기가 달라도 입출력이 가능하려면 배열 요소의 개수를 알아야 한다.

profile
디자인과 개발을 모두 할줄 아는 능력있는 개발자가 되고싶습니다.

0개의 댓글