🎈1.문제 설명
* int num[3][4]배열을 선언하여 각 방의 값을 1~20사이의 난수(random number)로 초기화 한 후에 각 방의 내용 밑 합계,열의 합계를 츌력하는 프로그램을 작성한다.
😁=>* 사용 함수
1. 배열 초기화 함수 : 3행 4열 배열의 각방을 1~20사이의 난수로 초기화 하는 함수
2. 결과 출력 함수 : 2차원 배열 내의 데이터를 출력하고, 각 행과 열의 합을 출력해주는 함수
3. 그 외 필요하다고 판단되는 함수 추가 가능
🎆2. 출력 화면

🎇3. 코드 + 주석
#include <stdio.h>
#include <stdlib.h>
void initArray(int(*p)[4], int row); /*배열 입력함수*/
void outputArray(int(*p)[4], int row); /*배열 출력함수*/
int main()
{
int num[3][4]; /*배열 공간 할당*/
int row; /*행 */
row = sizeof(num) / sizeof(num[0]); /* 행의 개수 구하기*/
initArray(num, row);
outputArray(num, row);
getchar();
getchar();
return 0;
}
void initArray(int(*p)[4], int row)
{
for (int i = 0; i < row; i++) {
for (int j = 0; j < 4; j++) {
p[i][j] = rand() % 20 + 1; /*1~20까지의 난수를 해당 2차원 배열에 초기화 */
}
}
return;
}
void outputArray(int(*p)[4], int row)
{
int rowSum, colSum; /*행과 열*/
for (int i = 0; i < row; i++) { /*행의 합 구하기*/
printf("%5d행 :",i);
rowSum = 0;
for (int j = 0; j < 4; j++) {
printf("%5d", p[i][j]);
rowSum += p[i][j];
}
printf(" %d행의 합: %d\n", i, rowSum);
}
printf("열의 합 :");
for (int i = 0; i < 4; i++) { /*열의 합 구하기*/
colSum = 0;
for (int j = 0; j < row; j++) {
colSum += p[j][i];
}
printf("%5d", colSum);
}
return;
}
🎉4. 출력화면
![업로드중..]()
🧨5. 코드 설명
위의 코드는 1~20까지의 난수를 2차원 배열에 초기화하고, 해당 행과 열의 합을 구하는 코드로, 먼저 2차원 배열에 1~20사이의 난수를 rand()%20+1로 지정해주어 난수를 생성해줘야 한다.
행의 합을 구하기 위해 지정된 행에 열이 점점 증가하는 for 문을 사용하여 행의 합을 구하면 된다. 그리고 열의 합도 마찬가지로 행과 열을 for 문을 이용하여 지정된 열의 값을 for 문이 반복 될때마다 더해주면 된다.
* rand 함수, srand 함수, time 함수 설명 링크 GoGo~!!! => 링크텍스트
✨6. 느낌점
이번 2차원 배열을 활용한 예제문제를 실습해보면서 2차원 배열의 구조와 난수 생성을 조금 더 자세히 알게 되었고, 새로웠다. 앞으로 새로 배운 내용을 다시 복습하고, 코드를 짜는데 시간을 줄이도록 노력하도록 해야겠다.