C++ 질문입니다!

조회수 506회

C++ 초급 배우고 있는 학생입니다.

0 ~ 9까지의 난수를 발생시켜 4행 3열짜리 2차원 배열을 만들어주는 함수를 작성했는데요, 이 배열에 출현한 숫자의 빈도수를 1차원 배열로 표현하고 싶습니다.

2차원 배열에 0이 2번 등장하면 1차원 배열의 0번지를 2번 증가시키는 것처럼! 이미지

#include <iostream>
#include <iomanip>   // setw()
#include <fstream>   
#include <ctime>     // rand(), time()

using namespace std;

// 기호상수, 전역
const int ROW = 4;
const int COL = 3;

// *** 함수의 원형 ***
void printArray(int num[][COL], int rowSize);  // 2차원 배열 출력
void randomNumbers(int inumbers[][3], int rowSize);  // 난수로 초기화
void randomCounts(int inumbers[][3], int size, int counts[]);  // 빈도 계산
void printArray1(int x[], int from, int to);   // 1차원 배열 출력


int main()   //main
{
    int rn[ROW][COL];
    int counts[10] = {0, };

    randomNumbers(rn, ROW);
    printArray(rn, ROW);
    randomCounts(rn, ROW, counts);

    cout << endl << "빈도배열" << endl;
    printArray1(counts, 0, 9);

  }   // main


// *********************** 함수 **************************

// 2차원 배열 출력
void printArray(int num[][COL], int rowSize)
{
    cout << "==================" << endl;
    for (int row = 0; row < rowSize; row++)
    {
        for (int col = 0; col < COL; col++)
            cout << setw(5) << num[row][col];
        cout << endl;
    }
    cout << "==================" << endl;

}

void randomNumbers(int inumbers[][COL], int rowSize)
{
    srand((unsigned int)time(NULL));

    for (int i = 0; i < ROW; i++)
    {
        for (int j = 0; j < COL; j++)
        {
            inumbers[i][j] = rand() % 10;

        }
    }

}

void randomCounts(int inumbers[][COL], int size, int counts[])
{

    for (int i = 0; i < ROW; i++)
    {
        for (int j = 0; j < COL; j++)
        {
            for (int s = 0; s < 12; s++)
            {
                if (counts[s] == inumbers[i][j])
                    counts[s]++;
            }


        }
    }


}




void printArray1(int x[], int from, int to)
{
    // 인덱스 출력
    for (int i = from; i <= to; i++)
        cout << setw(5) << i;
    cout << endl;
    cout << "  ";
    // 구분자 출력
    for (int i = from; i <= to; i++)
        cout << "----+";
    cout << endl;
    // 배열 출력
    for (int i = from; i <= to; i++)
        cout << setw(5) << x[i];
    cout << endl << endl;
}

여기서 빈도수를 계산해주는 randomCounts 함수가 문제입니다. 도와주시면 정말 감사드리겠습니다!

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)