다음과 같이 코드를 짠 상태에서 실행을 시켜보면 최대값을 구하는 것 까지는 작동을 하는 것을 확인했지만, 중간에 수직 히스토그램을 만들기 위한 코드가 전혀 작동을 하지 않고 바로 마지막에 ----1234을 출력하더군요.
형태를 조금씩 바꿔서 시도를 해보았는데도 계속 같은 현상이 발생하는데 어떤 부분이 잘못 된 것인지 잘 이해가 되지 않아 이렇게 질문을 남깁니다.
#include<stdio.h>
int main()
{
int c, i;
int num[10];
for (i = 0; i < 10; ++i)
num[i] = 0;
/*입력 받는 부분*/
while ((c = getchar()) != EOF) {
if (c >= '0'&&c <= '9')
++num[c - '0'];
}
int max = 0;
/*최댓값 받는 부분*/
for (i = 0; i < 10; ++i) {
if (num[i] > max)
max = num[i];
}
/*만약에 num[i]에 저장된 값이 최대값과 같다면 '*'출력, 아니라면 ' '출력.
다음으로 num[i]에 저장된 값이 최대값-1과 같다면 '*'*/
while (max == '0') {
for (i = 0; i < 10; ++i) {
if (num[i] == max)
printf("*");
if (num[i] < max)
printf(" ");
}
printf("\n");
--max;
}
printf("----------\n");
for (i = 0; i < 10; ++i)
printf("%d", i);
}