2차원 배열
배열 안에 배열
2차원 배열 선언
자료형 배열명[행][열] = {{값1, 값2}, {값3, 값4}, {값5, 값6}, ...};
자료형 배열명[행][열]= [초기값, };
2차원 배열 사용
int arrData[2][3]={0, }
*(배열명 + 9) +2 //주소값
*(*(배열명 +2)) // 값 (두번 접근했으므로 주소값이 아닌, 값!)
*(*(배열명)+2) = // 0행 3열
이중 for문(Nested For)
A: for (초기식; 조건식; 증감식){
실행할 문장;
B: for(초기식; 조건식;증감식){
실행할 문장;
}
실행할 문장;
}
A 반복문은 안에 작성 된 문장이 모두 끝나야 다음 반복으로 넘어가기 때문에
B 반복문은 A 반복 횟수만큼 초기식으로 돌아간다
실행할 문장 1 : A반복문의 매 반복마다 처음으로 실행되는 문장
실행할 문장 2 : A반복문의 매 반복마다 B반복문이 처음부터 다시 시작 되고
A반복횟수 * B반복횟수 만큼 실행 되는 문장
실행할 문장 3 : B 반복문이 끝날 때 마다 실행 되는 문장
#include <stdio.h>
void main() {
int temp[2][3] = {
{10,20,30},
{40,50,60}
};
printf("%4d %4d %4d\n", temp[0][0], temp[0][1], temp[0][2]);
printf("%4d %4d %4d\n", temp[1][0], temp[1][1], temp[1][2]);
printf("sizeof(배열전체): %d\n", sizeof(temp));
printf("sizeof(한 행의 크기): %d\n", sizeof(temp[0]));
}
<결과>
10 20 30
40 50 60
sizeof(배열전체): 24
sizeof(한 행의 크기): 12
#include <stdio.h>
void main() {
int arrData[2][3] = { 0, };
for (int i = 0; i < 2; i++) { //행
for (int j = 0; j < 3; j++) { //열
arrData[i][j] = 5;
}
}
for (int i = 0; i < 2; i++) { //행
for (int j = 0; j < 3; j++) { //열
printf("%d", arrData[i][j]);
}
printf("\n");
}
}
<결과>
555
555
#include <stdio.h>
//월세 구하기 프로그램
void main() {
int arrIncome[2][3] = { 0, };
int total = 0;
double avg = 0.0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d동 %d호 월세 입력[단위:만원]\n", i+1, j+1);
scanf_s("%d", arrIncome[i] + j);
total += arrIncome[i][j];
}
}
avg = (double)total / 6;
printf("총 월세 %d 만원\n", total);
printf("평균 월세: %.2f 만원", avg);
}
<결과>
//월세 입력은 사용자 마음대로
1동 1호 월세 입력[단위:만원]
10
1동 2호 월세 입력[단위:만원]
25
1동 3호 월세 입력[단위:만원]
35
2동 1호 월세 입력[단위:만원]
50
2동 2호 월세 입력[단위:만원]
30
2동 3호 월세 입력[단위:만원]
40
총 월세 190 만원
평균 월세: 31.67 만원
'Dev. > C++' 카테고리의 다른 글
2차원 배열 연습문제 (0) | 2022.03.18 |
---|---|
3차원 배열/ 문자열배열 (0) | 2022.03.18 |
포인터와 배열 응용문제 풀기 (0) | 2022.03.06 |
포인터와 배열 연습문제 풀기, null문자 (0) | 2022.03.06 |
포인터와 배열 (0) | 2022.03.06 |
댓글