본문 바로가기
C언어

[C언어] 0에서 9까지의 정수 중에서 10개의 수를 입력 받아 가장 많이 입력 받은 빈도 수와 몇 번인지 출력하는 프로그램을 작성하시오.

by 이얏호이야호 2022. 11. 27.

행렬에 값을 입력하고 빈도수와 몇번 행렬인지까지 출력하는 프로그램을 작성했습니다.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

 

더보기

입력예시

1 1 1 1 2 2 2 3 3 3

출력 예시

 

빈도수를 카운트하고 가장 많이 나온 값을 출력하는 함수를 작성하고

0~9의 값을 입력받는 메인문을 작성하여 출력하면 됩니다 

코드샘플입니다.

 

#include<stdio.h>

void frqtest(int[]);

int main(void) {

	int i, x[10]; //x는입력값을저장할변수

	printf("0에서9까지의정수를입력하시오.\n");

	for(i=0; i<10; i++) {
		scanf("%d", &x[i]);          // 정수0~9를입력
		if( 		) ) { // 0~9가아니면다시입력
			printf("다시입력(0 ~ 9) : ");
			--i;
		}
	}

	frqtest(x);

	return 0;
}

void frqtest(int x[]) { 

	int freq[10] = {0}; //입력한변수x값의빈도수를저장할변수
	int i, index, max = 0;

	for(i=0; i<10; i++)
			//입력한변수x의빈도수를카운터시킴
	
	for(i=0; i<10; i++)
		if (freq[i] > max) { 
			//가장빈도수가높은것을max에저장
			//가장많이나온수를index에저장
		}

	printf("\n0 ~ 9 중가장많이나온수는%d이고, %d번나왔습니다.\n",
		     index, freq[index]);
}

 

 

 

더보기

입력예시

1 1 1 1 2 2 2 3 3 3

출력 예시

 

#include<stdio.h>

void frqtest(int[]);

int main(void) {

	int i, x[10]; //x는입력값을저장할변수

	printf("0에서9까지의정수를입력하시오.\n");

	for(i=0; i<10; i++) {
		scanf("%d", &x[i]);          // 정수0~9를입력
		if( !(x[i] >= 0 && x[i] <= 9) ) { // 0~9가아니면다시입력
			printf("다시입력(0 ~ 9) : ");
			--i;
		}
	}

	frqtest(x);

	return 0;
}

void frqtest(int x[]) { 

	int freq[10] = {0}; //입력한변수x값의빈도수를저장할변수
	int i, index, max = 0;

	for(i=0; i<10; i++) //입력한변수x의빈도수를카운터시킴
		++freq[x[i]];
	
	for(i=0; i<10; i++)
		if (freq[i] > max) { 
			max = freq[i]; //가장빈도수가높은것을bin에저장
			index = i;     //가장많이나온수를max에저장
		}

	printf("\n0 ~ 9 중가장많이나온수는%d이고, %d번나왔습니다.\n",
		     index, freq[index]);
}

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글