728x90
반응형
<배열>
int s[10]; //1차원 배열
int s[3][10]; //2차원 배열
int s[3][3][5]; //3차원 배열
1. 2차원 배열
- 자료형 배열명[row][col]; // 인덱스 2개
- int arr[3][5]
행\열 arr[0] arr[1] arr[2] arr[3] arr[4]
arr[0] 1 2 3 4 5
arr[1] 6 7 8 9 10
arr[2] ...
ex)
int s[3][10];
int num = 1;
for (int i = 0; i < 3; i++) //행 (가로
{
for (int j = 0; j < 10; j++) //열 (세로
{
s[i][j] = num++;
}
}
2차원 배열의 초기화
int s[2][3] = { { 1, 2, 3 }, //첫 번째 행의 원소들의 초기값
{ 4, 5, 6 }, //두 번째 행의 원소들의 초기값
{ 7, 8, 9 }}; //세 번째 행의 원소들의 초기값
col(열)은 사이즈 들어가야함
>> col[SIZE]보다 작은 {}, 0으로 채워짐.
row(행)은 비워져도 ok
int s[][5] = { {1,2,3,4,5},{6,7,8,9,10}, {11,12,13,14,15} };
int s[][5] = { {0,1,2},{3,4,5},{6,7,8} }; //나머지 0으로 채워짐
int s[][5] = { 0,1,2,3,4, //첫 번째 행의 원소들의 초기값
5,6,7,8,9 }; //두 번째 행의 원소들의 초기값
2. 3차원 배열
int s[6][3][5];
첫번째 인덱스 : 학년번호
두번째 인덱스 : 학급번호
세번째 인덱스 : 학생번호
for (int i = 0; i < 6; i++) //행
{
for (int j = 0; j < 3;j++) //열
{
for (int k = 0; k < 5; k++) //?
s[i][j][k] = value++;
}
}
//배열3개로 전체 학생들의 평균 성적 구하기
#include <stdio.h>
#define CLASSES 3
#define STUDENTS 5
int main(void)
{
int s[CLASSES][STUDENTS] = {
{0,1,2,3,4},
{10,11,12,13,14},
{20,21,22,23,24}
};
int total = 0; //전체 합
for (int i = 0; i < CLASSES; i++)
{
int subtotal = 0; //한반씩 계산 후 초기화
for (int j = 0; j < STUDENTS; j++)
{
subtotal+= s[i][j];
}
printf("학급 %d의 평균 성적은 : %.2f\n", i + 1, subtotal / (double)STUDENTS);
total += subtotal;
}
printf("전체 학생들의 평균 성적은 %.2f\n", total / (double)(CLASSES * STUDENTS));
return 0;
}
//다차원 배열을 이용한 행렬의 표형
//A,B 두 개의 행렬의 요소를 각각 더해 C라는 행렬을 만들어 출력하는 프로그램을 작성
//A,B,C는 3*3 다차원 배열을 이용
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
#define ROWS 3
#define COLS 3
int main(void)
{
int A[ROWS][COLS] = { {2,3,0}, {8,9,1},{7,0,5} };
int B[ROWS][COLS] = { {1,0,0} ,{1,0,0},{1,0,0} };
int C[ROWS][COLS];
for (int i = 0; i < COLS; i++)
{
for (int j = 0; j < ROWS; j++)
{
C[i][j] = A[i][j] + B[i][j];
}
}
for (int i = 0; i < COLS; i++)
{
for (int j = 0; j < ROWS; j++)
{
printf("%d ", C[i][j]);
}
printf("\n");
}
return 0;
}
728x90
반응형