안 쓰던 블로그

C언어 2차원 배열과 성적의 총점 구하기 예제 본문

언어/C, C++

C언어 2차원 배열과 성적의 총점 구하기 예제

proqk 2016. 2. 23. 18:26
반응형

C언어 2차원 배열


1차원, 2차원, 3차원 배열을 통칭하여 다차원 배열이라고 한다.

3차원 이상의 배열은 쓸 일도 없고 논리적으로 이해하기 힘들기 때문에 다차원 배열이라함은 3차원까지만을 말한다.



1. 2차원 배열


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
int main(void){
    int score[3][2]; //3명의 학생들의 2과목 성적을 체크
    int total[2= { 0, };
    int a, b;
 
    for (b = 0; b < 3; b++){ //점수 입력받음
        printf("%d번 학생의 국어, 수학점수: ", b+1);
        scanf("%d %d", &score[b][0], &score[b][1]);
    }
 
    for (a = 0; a < 3; a++){ //총점계산
        total[0+= score[a][0];
        total[1+= score[a][1];
    }
 
    printf("\n\n3명의 국어 총점:%d", total[0]);
    printf("\n3명의 수학 총점:%d", total[1]);
    
    return 0;
}
cs

2차원 배열을 사용하여 3명의 학생들의 2과목 성적의 총점을 계산하는 예제다.


1차원이 방이라면 2차원은 객실이다.


3번째 줄에서 2차원 배열을 선언했다.
선언은 행-열 순으로 int a[3][2]라고 선언했다면

0 1
2 3
4 5

로 방이 만들어진 것이다.

4번째 줄에서 배열 요소를 전부 0으로 초기화시켰다.
간혹 int total[2] = {0}이라고 초기화 하는 사람도 볼 수 있는데, 
어차피 {1, }든 {1}든 값을 지정한 것 이외에는 모두 0으로 초기화 해주기 때문에 별로 상관은 없다.

초기화 방법 정리→http://foxtrotin.tistory.com/10

7~9번째 줄에서 점수를 입력받았다.
9번줄 for문을 돌리면서 배열에다가 하나씩 값을 넣은 것이다.
첫번째 돌때 b=0이니까 score[0][0]번째에 국어 점수를, score[0][1]번째에 수학 점수를 넣었다는 의미다.

12번째 for문도 마찬가지로 a가 돌아가며 total[0]에는 모든 국어 점수를 더하고 total[1]에는 수학 점수를 더해 총점을 구했다.

2차원 배열을 출력할 때는 원래 이중for문을 사용해야 한다는걸 보여주고 싶었는데
예시를 쓰다보니 성적을 구할 때는 굳이 사용할 필요가 없다는걸 알아버렸다








반응형

'언어 > C, C++' 카테고리의 다른 글

C언어 구조체  (0) 2016.02.23
C언어 3차원 배열과 성적의 총점 구하기 예제  (0) 2016.02.23
C언어 1차원 배열  (0) 2016.02.23
C언어 연산자  (0) 2016.02.23
C언어 배열 초기화  (0) 2016.02.22
Comments