我希望它只看这个:
1 2 3 4 5
2 3 4 5 4
3 4 5 4 3
4 5 4 3 2
5 4 3 2 1
但结束了:
1 2 3 4 5
2 3 4 5 4 3 2 1
3 4 5 4 3 2 1
4 5 4 3 2 1
5 4 3 2 1
这是我的代码:
for(int a = 1; a <= 5; a++){
for(int b = a; b <=5; b++){
System.out.print(b+ " ");
}
if(a != 1){
for(int c = 4; c >= 1; c--){
for(int d = c; d == c; d--){
System.out.print(d + " ");
}
}
}
System.out.println();
}
答案 0 :(得分:0)
您的内部for
循环看起来不太好。试试这个:
for(int a = 1; a <= 5; a++){
for(int b = a; b <=5; b++){
System.out.print(b+ " ");
}
for(int c = 4; c >= 6-a; c--){
System.out.print(c + " ");
}
System.out.println();
}
注意:您也不再需要if(a != 1)
检查,因为第二个(内部)for
循环仅针对2 <= a <= 5
执行
(由于外部a
)
for
不能超过5
答案 1 :(得分:0)
试试这个
for(int a = 1; a <= 5; a++){
int numberByLine=5;
for(int b = a; b <=5; b++){
System.out.print(b+ " ");
numberByLine--;
}
if(a != 1){
for(int c = 4; numberByLine!=0; c--){
System.out.print(c + " ");
numberByLine--;
}
}
System.out.println();
}
答案 2 :(得分:0)
我删除了a!= 1支票以使其更清洁 添加了一个maxval变量,以便您可以制作不同大小的正方形
int maxval = 5;
for(int a = 1; a <= maxval; a++){
for(int b = a; b <= maxval; b++){
System.out.print(b+ " ");
}
for(int c = (maxval-1); c > (maxval-a); c--){
System.out.print(c + " ");
}
System.out.println();
}