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;
}
}