아 이미지 왜 자꾸 깨짐.

이미지 자꾸 깨지니까 그냥 말로하겠음 ...딱히 할말이없네요 이미지올리고싶은데
ps&cube
접속 : 6146   Lv. 86

Category

Profile

Counter

  • 오늘 : 77 명
  • 전체 : 439974 명
  • Mypi Ver. 0.3.1 β
[학생] 자바에서 배열부분에 대한 질문입니다...숫자히스토그램. (5) 2015/09/28 PM 07:52

사진처럼...숫자 히스토그램 만드는겁니다...
나오긴 나오는데요...
사진보시는것처럼.
복잡하기도 하고...
null값이 ㅁ로 나오는데 이걸 ㅓ해결할방법을 모르겠습니다.



import java.util.Scanner;

public class Histogram {


public static void main(String[] args) {
int intArray[]=new int [5];
char counter[]=new char[5];
char counter1[]=new char[5];
char counter2[]=new char[5];
char counter3[]=new char[5];
char counter4[]=new char[5];


int count0=1;
int count1=1;
int count2=1;
int count3=1;
int count4=1;

Scanner sc=new Scanner(System.in);
System.out.println("첫번째 숫자 입력하세요");
int -nput0 = sc.nextInt();
System.out.println("두번째 숫자 입력하세요");
int -nput1 = sc.nextInt();
System.out.println("세번째 숫자 입력하세요");
int -nput2 = sc.nextInt();
System.out.println("네번째 숫자 입력하세요");
int -nput3 = sc.nextInt();
System.out.println("다번째 숫자 입력하세요");
int -nput4 = sc.nextInt();


intArray[0]=-nput0;
intArray[1]=-nput1;
intArray[2]=-nput2;
intArray[3]=-nput3;
intArray[4]=-nput4;



for(int i=0; i<5; i++){

if(intArray[i]>=0&&intArray[i]<20){


for(int j=0; j counter[j]='*';

count0++;

}
}
if(intArray[i]>=20&&intArray[i]<40){

for(int j=0; j counter1[j]='*';

}
count1++;
}
if(intArray[i]>=40&&intArray[i]<60){

for(int j=0; j counter2[j]='*';
}
count2++;

}
if(intArray[i]>=60&&intArray[i]<80){

for(int j=0; j counter3[j]='*';

}
count3++;

}
if(intArray[i]>=80&&intArray[i]<100){

for(int j=0; j counter4[j]='*';
}
count4++;
}

}

System.out.println("0~20사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter[i]==0? " ":counter[i]);

System.out.println("20~40사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter1[i]);
System.out.println("40~60사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter2[i]);

System.out.println("60~80사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter3[i]);
System.out.println("80~100사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter4[i]);


}

}






신고

 

밥 로스    친구신청

원치 않는 문자가 나왔다고 하면
처음 문자 배열 선언 후 반복문으로
각 주소에 공백문자 ( ' ' ) 를 넣는 방법이 있겠네요

밥 로스    친구신청

for(int n = 0; n <5 ; n++){
counter[n] = ' ';
counter1[n] = ' ';
counter2[n] = ' ';
counter3[n] = ' ';
counter4[n] = ' ';
}

ps&cube    친구신청

그렇게 치면 counter[]배열에 있는값이 다 없는걸로 나오는거아닐까요?
5개 배열인데 3개만 입력된경우 남은 2개의 값이 문제인건데...
문제는 이걸 제가 입력을 한 값에 따라 달라지게 되어서요

카센    친구신청

counter 배열에 문자를 입력 후 문자열 끝처리를 하지 않아서 쓰레기 값이 출력되는 상태네요

모든 입력받은 수에 대한 체크 후 뒷 값에 '\0' 값 처리 하시면 깔끔하게 출력되실겁니다

ps&cube    친구신청



System.out.println("0~20사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.println(counter[i]+'\0');

System.out.println("20~40사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter1[i]+'\0');
System.out.println("40~60사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter2[i]+'\0');

System.out.println("60~80사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter3[i]+'\0');
System.out.println("80~100사이의 갯수는 : ");
for(int i=0; i<5; i++)
System.out.print(counter4[i]+'\0');

이런식으로요?
X