我有一个问题要问你。
https://stackoverflow.com/questions/14975968/vertical-arrangement-with-asterisk#=
您分享此帖子的代码非常好。我明天要考试。请告诉我解决方案。 我在此程序中编辑了int数组。 它是{-1,2,5,3},但是程序未在其中int数组中打印(-1)值。 我想当循环读取此负值时,它越过新行并打印“ *”,并将负值打印到其下划线。
您能告诉我如何用Java做到这一点吗? 谢谢。 https://i.stack.imgur.com/ESsVE.jpg
答案 0 :(得分:0)
公共静态void main(String [] args)引发IOException {
int[] a = new int[] {-1,3,-4,2,5};
int[] tmp = a.clone();
Arrays.sort(tmp);
int max = tmp[tmp.length-1];
int low = tmp[0];
int last =max;
if(low<0) {
last=max-low;
}
for (int i = 0; i < last+1; i++) {
for (int j = 0; j < a.length; j++) {
if (i == last ) {
System.out.print(a[j]);
} else if(i<max){
if (i < max - a[j])
System.out.print(" ");
else
System.out.print("*");
}
else {
if (i < max - a[j] )
System.out.print("*");
else
System.out.print(" ");
}
}
System.out.println();
}
}