0~9까지의 정수 10번입력받아서 가장많이 나온수와 빈도수를 출력하는 프로그램
사이
저혼자 그냥 만들어봤는데... 마지막 부분의 가장많이 나온수와 그 빈도수를 출력하는 부분에서
어떻게 해야할지 모르겠어요..ㅜㅜ
질문 내용 :
#include stdio.h
int main()
{
int arr1[10]; //0~9까지의 입력을 입력받을 배열
int arr2[10]={0}; //빈도수를 체크할 배열
int i; //인덱스
int x,y=0; //
for(i=0;i10;i++) //반복문으로 입력받는다. 배열arr1에다가 채운다.
{
printf(0~9까지의 정수를 입력하세요 %d번쨰 입니다. , i+1);
scanf(%d,&arr1[i]);
arr2[arr1[i]]++; //arr2의 arr1[i]번쨰 해당하는 인덱스의 배열에서 맨처음 0으로 초기화 된것을 1씩 증가시킨다.
}
printf(최종결과는 \n); // 결과를 출력한다.
for(i=0;i10;i++)
{
printf(%d : %d 번\n,i,arr2[i] );
}
printf(가장 많이 출력된 결과는 다음과 같습니다.\n);
for(i=0;i10;i++)
{
if(arr2[i]=arr2[i+1]) //만일 arr2배열에서 앞에수 뒤에수 가 더 크다면 swap를 실행한다.
{
x=arr2[i+1];
arr2[i+1]=arr2[i];
arr2[i]=x;
y++; //또한 0으로 초기화시킨 y에서 첨가의 인덱스 값을 1 증가시킨다.
}
}
printf(%d : %d번 \n, arr2[y], arr2[0]); //최종은 arr2는 내림차순으로 정렬되었다. arr2의 배열의 첫번쨰 값을 출력해주고
//y값도 출력해준다. 요 부분을 그냥 짰는데 결과가 제대로 안나와요 ㅠ 어떠케야되죠?
}
-
달달항사탕
\y값도 출력해준다\라고 되어 있는데 y값을 출력을 안 해주는군요.
y값은 swap한 카운트네요.