티스토리 뷰

부스트코스/3. 배열

[CS50] 3.4 배열(2)

fromslow 2021. 1. 23. 21:24

전역변수

scores 배열의 크기인 3을 N이라는 전역변수로 선언해주었다.

이 변수가 고정된 값(상수)라면 앞에 const를 붙여준다.

관습적으로 전역변수는 대문자를 쓴다.

#include <cs50.h>
#include <stdio.h>

const int N = 3;

int main(void)
{
    // 점수 배열 선언 및 값 저장
    int scores[N];
    scores[0] = 72;
    scores[1] = 73;
    scores[2] = 33;

    // 평균 점수 출력
    printf("Average: %i\n", (scores[0] + scores[1] + scores[2]) / N);
}

 

 

배열의 동적 선언 및 저장

배열의 크기와 배열의 인덱스 값을 사용자로부터 동적으로 입력받아 저장한다.

#include <cs50.h>
#include <stdio.h>

float average(int length, int array[]);

int main(void)
{
    // 사용자로부터 점수의 갯수 입력
    int n = get_int("Scores:  ");

    // 점수 배열 선언 및 사용자로부터 값 입력
    int scores[n];
    for (int i = 0; i < n; i++)
    {
        scores[i] = get_int("Score %i: ", i + 1);
    }

    // 평균 출력
    printf("Average: %.1f\n", average(n, scores));
}

//평균을 계산하는 함수
float average(int length, int array[])
{
    int sum = 0;
    for (int i = 0; i < length; i++)
    {
        sum += array[i];
    }
    return (float) sum / (float) length;
}

코드설명------

 

-get_int를 통해서 사용자로부터 점수의 개수를 입력받는다.

-n을 scores의 크기에 할당하고 n만큼 for문을 돌린다.

-for문 안에서 사용자의 점수를 입력받아 scores 배열의 인덱스 값에 넣는다.

-average 함수에 n과 scores 배열을 인자로 넘겨주고, 각각 length와 array[]로 받는다.

인자로 배열을 가져올 때는 'array[]'와 같이 대괄호를 써준다.

 

-sum에 0을 할당하고 for문을 length만큼 돌리면서 배열의 값들을 다 더해서 sum에 넣는다.

-그 다음, sum / length를 한 값(평균값)을 return한다.

 

-printf함수에서 return값을 받아서 출력한다.

 

 

 

 

 

출처: www.boostcourse.org/cs112

'부스트코스 > 3. 배열' 카테고리의 다른 글

[CS50] 3.6 문자열과 배열(2)  (0) 2021.01.23
[CS50] 3.5 문자열과 배열(1)  (0) 2021.01.23
[CS50] 3.3 배열(1)  (0) 2021.01.23
[CS50] 3.2 디버깅  (0) 2021.01.23
[CS50] 3.1 컴파일링  (0) 2021.01.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함