#include <stdio.h>
int main() {
/*
========================================================
[문제1] 이차원 배열 선언과 요소 출력
========================================================
2행 3열의 정수형 배열 arr1을 선언하면서
다음 값을 저장하세요.
10 20 30
40 50 60
배열의 인덱스를 이용하여
첫 번째 행의 첫 번째 요소와
두 번째 행의 세 번째 요소를 출력하세요.
[실행 결과]
첫 번째 요소 : 10
마지막 요소 : 60
[조건]
1. 배열 이름은 arr1입니다.
2. 배열을 선언하면서 값을 초기화합니다.
3. 배열의 인덱스를 이용하여 출력합니다.
4. 반복문은 사용하지 않습니다.
*/
// [문제1] 코드 작성
int arr1[2][3] = {{10, 20, 30}, {40, 50, 60}};
printf("첫 번째 요소 : %d\n", arr1[0][0]);
printf("마지막 요소 : %d\n", arr1[1][2]);
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제2] 이차원 배열의 크기 확인
========================================================
3행 4열의 정수형 배열 arr2를 선언하고
모든 요소를 0으로 초기화하세요.
sizeof 연산자를 이용하여
다음 세 가지 크기를 출력하세요.
1. 배열 전체의 크기
2. 첫 번째 행의 크기
3. 첫 번째 요소의 크기
[실행 결과 예시]
배열 전체 크기 : 48바이트
첫 번째 행 크기 : 16바이트
첫 번째 요소 크기 : 4바이트
[조건]
1. 배열 이름은 arr2입니다.
2. 배열을 선언하면서 {0}으로 초기화합니다.
3. sizeof 연산자를 사용합니다.
4. 크기는 %zu로 출력합니다.
※ 실행 결과는 int가 4바이트인 환경을 기준으로 합니다.
*/
// [문제2] 코드 작성
int arr2[3][4] = {};
printf("배열 전체 크기 : %zu\n", sizeof(arr2));
printf("첫 번째 행 크기 : %zu\n", sizeof(arr2[0]));
printf("첫 번째 요소 크기 : %zu\n", sizeof(arr2[0][1]));
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제3] 이차원 배열의 모든 요소 출력
========================================================
2행 3열의 정수형 배열 arr3을
다음과 같이 초기화하세요.
1 2 3
4 5 6
중첩 for문을 사용하여
배열의 모든 요소를 출력하세요.
각 행의 요소는 공백으로 구분하고
한 행을 출력한 후 줄바꿈하세요.
[실행 결과]
1 2 3
4 5 6
[조건]
1. 배열 이름은 arr3입니다.
2. 바깥쪽 반복문 변수는 i3입니다.
3. 안쪽 반복문 변수는 j3입니다.
4. 중첩 for문을 사용합니다.
5. 배열의 인덱스를 이용하여 출력합니다.
*/
// [문제3] 코드 작성
int arr3[2][3] = {{1,2,3}, {4,5,6}};
for(int i3=0;i3<2;i3++){
for(int j3=0;j3<3;j3++){
printf("%d ", arr3[i3][j3]);
}
}
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제4] 이차원 배열에 정수 입력받기
========================================================
2행 3열의 정수형 배열 arr4를 선언하세요.
사용자에게 정수 6개를 입력받아
배열에 차례대로 저장하세요.
입력이 끝나면 중첩 for문을 사용하여
저장된 값을 행과 열의 인덱스와 함께 출력하세요.
[입력 예시]
10 20 30
40 50 60
[실행 결과]
arr4[0][0] = 10
arr4[0][1] = 20
arr4[0][2] = 30
arr4[1][0] = 40
arr4[1][1] = 50
arr4[1][2] = 60
[조건]
1. 배열 이름은 arr4입니다.
2. 반복문 변수는 i4, j4를 사용합니다.
3. scanf()를 이용하여 입력받습니다.
4. 입력과 출력에 각각 중첩 for문을 사용합니다.
*/
// [문제4] 코드 작성
int arr4[2][3];
for(int i4=0;i4<2;i4++){
for(int j4=0;j4<3;j4++){
scanf("%d", &arr4[i4][j4]);
}
}
for(int i4=0;i4<2;i4++){
for(int j4=0;j4<3;j4++){
printf("%d\n", arr4[i4][j4]);
}
}
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제5] 이차원 배열의 특정 요소 변경
========================================================
2행 3열의 정수형 배열 arr5를
다음과 같이 초기화하세요.
10 20 30
40 50 60
사용자에게 변경할 행과 열의 인덱스,
새로운 값을 입력받으세요.
해당 위치의 요소를 새로운 값으로 변경한 후
배열 전체를 출력하세요.
[입력 예시]
1 2 99
[실행 결과]
10 20 30
40 50 99
[조건]
1. 배열 이름은 arr5입니다.
2. 행 인덱스는 row5를 사용합니다.
3. 열 인덱스는 col5를 사용합니다.
4. 새로운 값은 value5를 사용합니다.
5. 행은 0~1, 열은 0~2만 유효합니다.
6. 유효한 위치인 경우에만 값을 변경합니다.
7. 유효하지 않은 위치라면 배열을 변경하지 않고
"잘못된 위치입니다."를 출력합니다.
8. 배열 전체 출력에는 중첩 for문을 사용합니다.
*/
// [문제5] 코드 작성
int arr5[2][3] = {{10, 20, 30}, {40, 50, 60}};
int row5, col5, value5;
scanf("%d %d %d", &row5, &col5, &value5);
if(row5>=0 && row5 < 2 && col5>=0 && col5 < 3){
arr5[row5][col5] = value5;
}
else{
printf("잘못된 위치입니다\n");
}
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
printf("%d ", arr5[i][j]);
}
printf("\n");
}
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제6] 이차원 배열의 합계 구하기
========================================================
2행 3열의 정수형 배열 arr6을
다음과 같이 초기화하세요.
5 10 15
20 25 30
중첩 for문을 사용하여
배열의 모든 요소를 더한 후
합계를 출력하세요.
[실행 결과]
전체 합계 : 105
[조건]
1. 배열 이름은 arr6입니다.
2. 합계를 저장할 변수 sum6을 사용합니다.
3. sum6은 0으로 초기화합니다.
4. 반복문 변수는 i6, j6을 사용합니다.
5. 중첩 for문을 사용하여 합계를 계산합니다.
*/
// [문제6] 코드 작성
int arr6[2][3] = {{5, 10, 15}, {20, 25, 30}};
int sum6 = 0;
for(int i6=0;i6<2;i6++){
for(int j6=0;j6<3;j6++){
sum6 += arr6[i6][j6];
}
}
printf("전체 합계 : %d\n", sum6);
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제7] 이차원 문자 배열과 문자열 수정
========================================================
3행 10열의 문자형 배열 words7을 선언하면서
다음 문자열을 저장하세요.
"Hallo"
"Coding"
"Apple"
반복문을 사용하여
저장된 문자열 3개를 모두 출력하세요.
이후 첫 번째 문자열의
두 번째 문자를 'e'로 변경하세요.
변경된 첫 번째 문자열을 다시 출력하세요.
[실행 결과]
Hallo
Coding
Apple
변경된 문자열 : Hello
[조건]
1. 배열 이름은 words7입니다.
2. 문자열 출력에는 %s를 사용합니다.
3. 반복문 변수는 i7을 사용합니다.
4. 배열의 인덱스를 이용하여 문자를 변경합니다.
5. 문자열 전체를 다시 대입하지 않습니다.
*/
// [문제7] 코드 작성
printf("\n\n");
// --------------------------------------------------------
/*
========================================================
[문제8] 학생 점수 관리 프로그램
========================================================
학생 3명의 국어, 영어, 수학 점수를
이차원 배열에 저장하는 프로그램을 작성하세요.
3행 3열의 정수형 배열 scores8을 선언하세요.
각 행은 학생 1명을 의미하고,
각 열은 국어, 영어, 수학 점수를 의미합니다.
사용자에게 총 9개의 점수를 입력받아
배열에 저장하세요.
이후 각 학생의 점수 합계를 계산하여
출력하세요.
[입력 예시]
80 90 70
60 75 85
95 90 100
[실행 결과]
1번 학생 합계 : 240
2번 학생 합계 : 220
3번 학생 합계 : 285
[조건]
1. 배열 이름은 scores8입니다.
2. 반복문 변수는 i8, j8을 사용합니다.
3. 입력에는 중첩 for문을 사용합니다.
4. 각 학생의 합계를 저장할 변수 sum8을 사용합니다.
5. 학생 한 명의 점수를 더하기 전에
sum8을 0으로 초기화합니다.
6. 합계 계산에도 중첩 for문을 사용합니다.
7. 학생별 합계를 각각 출력합니다.
*/
// [문제8] 코드 작성
printf("\n\n");
// --------------------------------------------------------
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: