public class Main {
private static void printStars(int amount) {
System.out.print("*");
}
private static void printWhitespaces(int size2) {
System.out.print(" ");
}
private static void printTriangle(int size) {
for (int i=1; i<=size; i++) {
{
for (int j=size-i; j>=1; j--)
printWhitespaces(size);
}
for(int k=1; k<=size; k++) {
printStars(size);
}
System.out.println("");
}
}
public static void main(String[] args) {
printTriangle(7);
}
}
问题在于for(int k=1; k<=size; k++){printStars(size);}
这个函数不想在每次传递时打印1,2,3,4,5,6,7星,而不是每次打印每行中的星星总量,目前是7.我做错了什么?
答案 0 :(得分:0)
我不确定您选择以何种方式实现三角形&#34;作为提示:要使用控制台,您可以使用\\n
&#34; ;代码概念可能就像这样看代码片段
<强> TESTED 强>
public class Main{
private void printStar() {
System.out.print("*");
}
private void printLineBreak() {
System.out.println();
}
private void printWhitespace() {
System.out.print(" ");
}
private void printWhitespaces(int size) {
for(int i=0; i<size; i++){
System.out.print("~");//replace with something else
this.printWhitespace();
}
}
private void printLeftToRightTriangle(int size) {
for(int i=0; i<size; i++){
for(int j=0; j<i+1; j++){
printStar();
printWhitespace();
}
this.printWhitespaces(size-(i+1));
this.printLineBreak();
}
}
private void printRightToLeftTriangle(int size) {
for(int i=0; i<size; i++){
this.printWhitespaces(size-(i+1));
for(int j=0; j<i+1; j++){
this.printStar();
this.printWhitespace();
} printLineBreak();
}
}
public Main(){
this.printLeftToRightTriangle(7);
this.printRightToLeftTriangle(7);
}
public static void main(String[] args) {
new Main();
}
}
修改强> @Jone我编辑了我的代码;我不确定你为什么使用空格;你说关于直角三角形所以我试图创建从左到右和从右到左三角形(参见我的控制台输出);
* ~ ~ ~ ~ ~ ~
* * ~ ~ ~ ~ ~
* * * ~ ~ ~ ~
* * * * ~ ~ ~
* * * * * ~ ~
* * * * * * ~
* * * * * * *
~ ~ ~ ~ ~ ~ *
~ ~ ~ ~ ~ * *
~ ~ ~ ~ * * *
~ ~ ~ * * * *
~ ~ * * * * *
~ * * * * * *
* * * * * * *
如果您需要其他信息,请告诉我们。
我希望这有点帮助:)
答案 1 :(得分:0)
int i,j
for (int y = 0; y < size; y++) {
for (i = y; i < size - 1; i++)
System.out.print(' ');
for (j = 0; j < y * 2 + 1; j++)
System.out.print('*');
System.out.println();
}
希望它有所帮助!!
答案 2 :(得分:0)
每行需要减少空格数,而每行增加的星数要增加。因此,在每一行中,空格数将为i
,星数将为size
。使用您的代码,它始终打印i
个星号,而不是k<=size
个星号。
要修复代码,请将k<=i
更改为public class Main {
private static void printNTimes(char c, int n) {
for (int i = 0; i < n; i++) {
System.out.print(c);
}
}
private static void printTriangle(int size) {
for (int i = 1; i <= size; i++) {
printNTimes(' ', size - i);
printNTimes('*', i);
System.out.println();
}
}
public static void main(String[] args) {
printTriangle(7);
}
}
。
以下是您的代码的工作版本,修改了您的方法以便于阅读。
{{1}}