배열 (1)

khxxjxx·2021년 4월 12일
0

강좌 : 부스트캠프 모두를 위한 컴퓨터과학(cs50 2019)

3. 배열

✍코드의 디자인

check50

  • 자동검사 프로그램
  • 여러 사람들이 각자 한 부분을 맡아 코드를 작성할 때 각자가 수정한 코드가 전체프로그램의 정확성을 해치지 않는지 쉽게 확인할 수 있다
++ cs50강의를 위해 만들어진 것으로 실제 작업환경에서 이와같은 자동검사 프로그램은 많은 도움이 된다.

style50

  • 스타일 가이드 프로그램
  • 심미적으로 잘 작성되어 있는지 검사할 수 있어 다른사람들이 코드를 읽고 이해하는데 도움을 준다
++ cs50강의를 위해 만들어진 것으로 많은 회사들은 사내에서 코드를 작성할 때 특정한 스타일 가이드를 따르도록 한다

✍배열(1)

메모리

자료형boolcharintflotlongdoublestring
크기1바이트1바이트4바이트4바이트8바이트8바이트7바이트
++ 문장부호: string - "큰따옴표" / char - '작은따옴표'

형변화

  • 하나의 자료형을 다른 종류로 바꾸는 행위

ASCII유니코드로 문자를 숫자로 변환하게 되는데 변수앞에 (int)를 적으면 char은 문자지만 정수처럼 여겨져 printf하면 변환된 숫자로 표시

++ 반대의 경우도 가능

완성

// 배열을 사용하지 않았을때
#include<cs50.h> 
#include<stdio.h> 

int main(void) 
{ 
    int score 1  =72; 
    int score2=73; 
    int score3= 33; 

    printf("Average: %i\n", (score1 + score2 + score3) / 3); 
 } 
// 배열을 사용했을때
#include<CS50.h> 
#include<stdio.h>   

int main(void)
{ 
   int scores[3];  // int 3의 배열을 scores라는 이름으로 생성하겠다는 의미
   scores[0] = 72; 
   scores[1] = 73; 
   scores[2] = 33;

   printf("Average : %i\n", (scores[0] + scores[1] + scores[2]) / 3); 
} 

✍배열(2)

전역 변수

const int N = 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<stdio.h>
#include<cs50.h>

float average(int x, int y[]);

int main(void)
{
    int n = get_int("Number of scores: ");  // 사용자로부터 점수의 갯수입력
    
    int scores[n];  // 입력된 갯수만큼 스코어 갯수생성
    
    for (int i =0; i < n; i+=1)  // 스코어 갯수만큼 반복
    {
    	scores[i] = get_int("Scores%i:",i+1);  // 사용자로부터 스코어점수 입력
    }

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

// 평균을 계산하는 함수
float average(int x, int y[])
{
    int sum = 0;
    for (int i=0; i < x; i++)
    {
    	sum += y[i];
    }
    return (float) sum / (float) x;
}
profile
코린이

0개의 댓글