1~45 사이의 숫자를 랜덤하게 1000개 추출한 후 가장 많이 나온 숫자 6개를 내림차순으로 출력하는 프로그램을 작성하시오.
이게 문제입니다.
그래서 제가한번짜보는데.. 막히는 부분이생기더라구요.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int random(int []);
int main() {
random(1000);
return 0;
}
int random(int x) {
int random[1000]={0,};
int i,j;
srand((unsigned)time(NULL));
for(i=0; i<x; i++) {
random[i] = rand()%46+1;
}
}
랜덤수 1000개를 배열속에 집어넣는 함수까지 만든상태인데요..
그다음 이제 \"1의빈도수:~~개\" 식으로 나오게 함수하나를 더 만들어야할텐데..
고민을해봐도 어떤식으로 짜야할지 모르겠습니다. 도움좀 부탁드립니다..
쉽게 짜는 방법: 1. int배열을 45개 만든다(숫자와 1:1대응되다치고) 해당숫자가 나올때마다 증가 그중 가장큰거 6개 추출 내림차순? 이런순으로 하면 될듯...
배열을 1000씩이나 만드는것 보다 bin[45] 를 만들어서 랜덤숫자 나올때 마다 하나씩 올려주는게 어떰
배열 검사한다 그다음에 카운터 하면되지요
ㅇㅇㅇ 말이 그게 좋을둣
int array[45]={0,}; array[random[i]]+=1 이게 되는건지 안되는건지 모르겄다.
음 윗사람들이 다 말했군
고맙습니다!! 재도전 해보겠습니다!