원하는 정수 값을 입력 받아 그 갯수 만큼 히스토그램을 출력하는 프로그램
package p0510;
import java.util.Scanner;
public class IntHistogram {
static Scanner scan = new Scanner(System.in);
static int[] histogram;
static int[] cnt = new int[10]; // 히스토그램 데이터를 카운트 하기 위한 배열
static String[] title = { "1-9", "10-19", "20-29", "30-39", "40-49", "50-59", "60-69", "70-79", "80-89", "90-99", };
static int i, j, star = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
while (true) {
System.out.print("인원수를 입력하세요. ");
int inwon = scan.nextInt();
System.out.println("1-99 사이의 정수를 입력하세요.");
histogram = new int[inwon]; //입력 받은 수 만큼 히스토그램 데이터 배열 크기 지정
input(inwon); //input 메소드에서 연산한 결과 가져와서 실행
print(); //print 메소드에서 연산한 결과 가져와서 실행
break;
}
}
public static void input(int su) {
for (int k = 0; k < su; k++) {
int num = scan.nextInt(); // 길이 갯수 만큼 입력 (10개)
histogram[k] = num; // 입력한 값을 histogram 배열에 저장
if (num <= 0) { // 입력한 값이 0이거나 음수이면 무시
continue; // while문으로 돌아감, i는 계속 증가=카운트됨
}
int star = histogram[k] / 10; // 몫의 배열을 인덱스로 이용
cnt[star]++; // 출력할 "*"의 갯수 카운트
}
}
public static void print() {
for (i = 0; i < cnt.length; i++) {
System.out.print(title[i] + ": ");
for (j = 0; j < cnt[i]; j++) { // 입력한 정수의 갯수만큼만 "*" 출력
System.out.print("*");
}
System.out.println();
}
}
}
'IT > Java' 카테고리의 다른 글
Java (랜덤 배열 카드게임) (0) | 2021.05.10 |
---|---|
Java (문자열 입력 히스토그램) (0) | 2021.05.10 |
Java (숫자 히스토그램 만들기) (0) | 2021.05.07 |
Java (호텔 투숙객 관리 프로그램) (0) | 2021.05.07 |
Java (배열_극장 좌석 예약 프로그램) (0) | 2021.05.07 |