본문 바로가기
프로그래밍 문제/c++ 문제

c++ 문제 40. 2차원 배열의 동적 생성과 삭제

by 지나팩 2023. 12. 20.

행과 열을 입력받아 2차원 배열을 동적 생성하고 1~100사이의 랜덤한 값을 할당하고 출력합니다. 그 후 배열의 메모리를 해제하는 코드를 작성하세요.

출력 예)

코드는 아래에~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstdlib>  // rand() 함수를 위한 헤더
#include <ctime>    // 시간을 이용한 난수 생성기 초기화를 위한 헤더
 
int main() {
    int rows, cols;
 
    // 사용자로부터 행과 열의 수 입력받기
    std::cout << "행의 수를 입력하세요: ";
    std::cin >> rows;
 
    std::cout << "열의 수를 입력하세요: ";
    std::cin >> cols;
 
    // 2차원 배열을 위한 포인터의 포인터 생성
    int** array = new int* [rows];
 
    // 각 행에 대한 배열 생성
    for (int i = 0; i < rows; i++) {
        array[i] = new int[cols];
    }
 
    // 난수 생성기 초기화
    std::srand(static_cast<unsigned int>(std::time(nullptr)));
 
    // 배열에 1부터 100 사이의 임의의 값 채우기
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            array[i][j] = std::rand() % 100 + 1;  // 1에서 100 사이의 값
        }
    }
 
    // 배열 데이터 출력 (옵션)
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            std::cout << array[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    // 메모리 해제
    for (int i = 0; i < rows; i++) {
        delete[] array[i];
    }
    delete[] array;
 
    return 0;
}
cs

댓글