*를 기둥을 세우는 부분에서 궁금한 부분이 있습니다.

1997best Reply 7 years 7 weeks ago
다음과 같이 코드를 짠 상태에서 실행을 시켜보면 최대값을 구하는 것 까지는 작동을 하는 것을 확인했지만, 중간에 수직 히스토그램을 만들기 위한 코드가 전혀 작동을 하지 않고 바로 마지막에 ----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); }