C++/문제풀이

[C++] ⭐️100개의 임의의 정수(0~0)발생시킨 후 숫자의 출현 빈도수 세기

year.number 2022. 6. 14. 15:31

 

실습 8-3번 문제

100개의 임의의 정수(0~0)발생시킨 후 숫자의 출현 빈도수 세기

 

void printArray(int inumbers[], int from, int to);
void randomCounts(int count[], int size);
int findMaxIndex(int count[], int size);
void grapg(int count[], int size);

👆함수 이용

 

//
//  main.cpp
//
//  Created by yeonsu on 2022/06/14.
//

// 100개의 임의의 정수(0~0)발생시킨 후 숫자의 출현 빈도수 세기

#include <iostream>
#include <ctime>        //rand 함수
#include <iomanip>

using namespace std;

void printArray(int inumbers[], int from, int to);
void randomCounts(int count[], int size);
int findMaxIndex(int count[], int size);
void grapg(int count[], int size);


int main(){
    cout << "\n\n100개의 임의의 정수(0~9)발생 시킨 후 숫자의 출현 빈도수 세기\n\n" << endl;
    int count[10] = { 0 };
    int max = 0;
    srand(time(NULL));

    randomCounts(count, 10);
    max = findMaxIndex(count, 10);
    printArray(count, 0, 9);


    cout << "가장 많이 생선된 난수는" << max << "이며 횟수는 " << count[max] << "입니다" << endl;
    cout << endl << endl;
    
    cout << "graph" << endl;
    grapg(count, 10);


    return 0;
}


// 일차원 배열 출력(인덱스 + 구분자 + 배열)
void printArray(int inumbers[], 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) << inumbers[i];
    cout << endl << endl;

}

void randomCounts(int count[], int size){
    
    srand((unsigned)time(NULL));    //난수 발생
    int random = 0;
    
    for (int i = 0; i < 100; i++){
        random = rand()% 10;
        count[random]++;
    }
}

int findMaxIndex(int count[], int size)
{
    int findMax = 0;
    for (int i = 0; i < size; i++)
        if (count[i] > count[findMax])
            findMax = i;
    
    return findMax;
}

void grapg(int count[], int size) {
    for (int i = 0; i < 10; i++) {
        cout << " " << i << ": ";
        for(int s=0; s<count[i]; s++){
            cout << "*";
            
        }
        cout << endl;
    }
}

실행 결과


Key Point

 1.

    for (int i = 0; i < 100; i++){

        random = rand()% 10;

        count[random]++;  //빈도수 체크

 

2.

int findMaxIndex(int count[], int size)

{

    int findMax = 0;

    for (int i = 0; i < size; i++)

        if (count[i] > count[findMax])

            findMax = i;

    return findMax;

}

 

3. 

void grapg(int count[], int size) {

    for (int i = 0; i < 10; i++) {

        cout << " " << i << ": ";

        for(int s=0; s<count[i]; s++){

            cout << "*";

            

        }

        cout << endl;

    }

}