값이 주어진 상태에서 값에 맞는 히스토그램을
*
을 이용하여 그리시오.
int list[10] = {9,2,5,4,0,1,7,3,8,6};
은 주어진다.요소 값 히스토그램
0 9 *********
1 2 **
2 5 *****
3 4 ****
4 0
5 1 *
6 7 *******
7 3 ***
8 8 ********
9 6 ******
#include <stdio.h>
int main(void) {
printf("요소\t값\t히스토그램\n");
int value[10] = { 9,2,5,4,0,1,7,3,8,6 };
int index = 10;
for (int i = 0; i < index; i++) {
printf("%2d\t%2d\t", i, value[i]);
for (int cnt = 0; cnt < value[i]; cnt++)
printf("*");
printf("\n");
}
return 0;
}
printf("요소\t값\t히스토그램\n");
int value[10] = { 9,2,5,4,0,1,7,3,8,6 };
int index = 10;
히스토그램에 포함될 제목들을 출력한다.
값의 개수이자 값을 넣을 배열의 크기인 index
를 10
으로 초기화한다.
곧 히스토그램의 별의 갯수가 될 값들을 value
배열로 넣어준다.
for (int i = 0; i < index; i++) {
printf("%2d\t%2d\t", i, value[i]);
index
만큼 for문
을 반복한다. 이는 별로 히스토그램을 각각의 값에 따라 그려주기 위함이다.
별을 그려주기 전에 먼저 인덱스 값인 i
와 그 인덱스 값에 해당하는 방에 들어있는 value[i]
값을 출력한다.
\t
를 이용하여 간격을 맞춰준다.
for (int cnt = 0; cnt < value[i]; cnt++)
printf("*");
printf("\n");
}
cnt
가 value[i]
보다 작을 때까지 while문
을 반복하며 value[i]
만큼의 *
을 출력한다. 값만큼 출력한 후에는 \n
을 이용해 줄바꿈을 한다.