행렬에 값을 입력하고 빈도수와 몇번 행렬인지까지 출력하는 프로그램을 작성했습니다.
물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때
혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!
힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고
답안을 확인해보세요
더보기
입력예시
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
'C언어' 카테고리의 다른 글
[C언어] 사용자로부터 혈액형 나이 키를 입력받고 출력하는 프로그램을 작성하시오 (0) | 2022.11.29 |
---|---|
[C언어] 10진수를 입력받고 8진수, 16진수로 출력, 변환하시오 (0) | 2022.11.29 |
[C언어] 배열을 활용하여 배열의 총합과 평균을 출력하는 함수를 작성하시오 (0) | 2022.11.27 |
[C언어] 일차원 배열이 같은지 검사하는 함수를 작성하여 같은지 다른지 테스트하라 equalarray(int a[], int b[], int n) (0) | 2022.11.27 |
[C언어] 일차원 배열을 복사하는 함수를 작성하여 결과를 알아보는 프로그램을 작성하시오 void copyarray(int from[], int to[], int n) (0) | 2022.11.27 |
댓글