import java.math.*;
public class distances
{
public static void main(String[] args)
{
int mercury, venus, earth, mars;
mercury=58000000;
venus=108200000;
earth=149500000;
mars=227800000;
double mercurym, venusm, earthm, marsm;
mercurym=mercury*1000;
venusm=venus*1000;
earthm=earth*1000;
marsm=mars*1000;
double mercuryy, venusy, earthy, marsy;
mercuryy=mercurym*1.0936133;
venusy=venusm*1.0936133;
earthy=earthm*1.0936133;
marsy=marsm*1.0936133;
System.out.printf("%-16s%-20sn", "Planet", "Distance from sun");
System.out.printf("%-16s%-20s%-20s%-20sn", " ", "km", "meters", "yards");
System.out.printf("%-16s%-20d%-20.0f%-20.1fn", "Mercury", mercury, mercurym, mercuryy);
System.out.printf("%-16s%-20d%-20.0f%-20.1fn", "Venus", venus, venusm, venusy);
System.out.printf("%-16s%-20d%-20.0f%-20.1fn", "Mars", mars, marsm, marsy);
System.out.printf("%-16s%-20d%-20.0f%-20.1fn", "Earth", earth, earthm, earthy);
}
}
교수가 쓸데없이 이상한 문제를 줘서 간격별로 배열하는 것 할 줄 아나 낸 것 같은데 문제는 그게 아니라
저 km로 된 걸 m로 변환해서 나타내려니까 값이 너무 커져서 -값뜨고 난리도 아닌데 어떻게 하지?
meter 변수들 1000 대신 1000.0 으로 곱해라. 초보 프로그래머들이 꼭 한번쯤 하는 실수임. 그리고 %f 보다는 %e로 출력하는게 나을거다.
걍 println 이나 print 하는게 더 편하지 않음? 알아서 다 뽑아주는데 자바에서도 printf 쓰는형들 많네 흠..
printf(\"%4.02f\", f) 만한게 없지
교수가 쓸데없는 문제를 줬다고 생각하는게 버그다.