Java中带星号的三角形
我正在尝试用星号制作一个可伸缩的三角形,我已经得到了这段代码,它完全是功能性的,并且调整了大小,但是它没有输出三角形的第三面。欢迎提出任何建议Java中带星号的三角形,java,loops,for-loop,geometry,Java,Loops,For Loop,Geometry,我正在尝试用星号制作一个可伸缩的三角形,我已经得到了这段代码,它完全是功能性的,并且调整了大小,但是它没有输出三角形的第三面。欢迎提出任何建议 import java.util.Scanner; class Triangle { public static void main(String[] args){ Scanner a; a = new Scanner(System.in); System.out.printl
import java.util.Scanner;
class Triangle {
public static void main(String[] args){
Scanner a;
a = new Scanner(System.in);
System.out.println("Welcome to the Scalable Triangle program!");
System.out.print("What size triangle do you want?");
int size = a.nextInt();
for (int j = 0; j < (size - 1); j++)
System.out.print(" ");
System.out.println("*");
//top line
for (int j = 1; j < (size - 1); j++)
{
for (int k = 0; k < (size - 1 - j); k++)
System.out.print(" ");
System.out.println("*");
}
for (int j = 0; j < size ; j++)
System.out.print("* ");
System.out.println(" ");
//bottom line
}
}
现在它将输出以下内容:
*
*
*
*
*
*
* * * * * * *
好的,我快速看了一下,它没有打印第三面的原因是因为你没有打印它的代码 您要查看的位位于嵌套循环中(您正在使用的第二个j计数器)。此时,嵌套循环(使用k计数器的循环)正在输出下面x之前的空格
*
x
x
x
x
x
* * * * * * *
您要做的是更改
System.out.println("*");
在这个循环中,不要开始新的生产线
然后再添加一个循环,以添加空格和星号。对于该星号,您需要将其作为新行输出
因为这看起来像是一个家庭作业,所以我不会给你任何代码来完成它。这应该是足够的信息来帮助你解决这个问题。请记住,始终一次跟踪代码1行,以便知道它在做什么
另外,要注意可能要添加的任何额外空格。如果这是一项家庭作业任务,您将希望输出与提供的输出完全匹配
祝你好运。试着得到行号、空格数、星星数等之间的数学关系,如下所示: 行号:第一颗星后的空格数
*
1* *1
2* *3
3* *5
4* *7
5* *9
* * * * * * *
如果第一颗星后的空格数=x,行号=y。然后
x=2y-1
守则:
public class Dia {
public static void main(String[] args) {
System.out.println(drawTriangle("*", 7));
}// main
// Assume equilateral triangle
public static String drawTriangle(String symbol, int side) {
StringBuilder sb = new StringBuilder();
int i = 0;
//Top line
for(i = 1; i < side; i++){sb.append(" ");}
sb.append(symbol);
sb.append("\n");
for(i = 1; i < side-1; i++){
for(int j = 1; j < side-i; j++){sb.append(" ");}
sb.append(symbol);
for(int k = 1; k <= (i * 2)- 1 ; k++){sb.append(" ");}
sb.append(symbol);
sb.append("\n");
}
//Bottom line
for(i = 0; i < side; i++){sb.append(symbol + " ");}
return sb.toString();
}
}
公共类{
公共静态void main(字符串[]args){
System.out.println(drawTriangle(“*”,7));
}//主要
//假设为等边三角形
公共静态字符串drawTriangle(字符串符号,int侧){
StringBuilder sb=新的StringBuilder();
int i=0;
//顶线
对于(i=1;i 对于(int k=1;k这将帮助您
import java.util.Scanner;
class Triangle {
public static void main(String[] args){
Scanner a;
a = new Scanner(System.in);
System.out.println("Welcome to the Scalable Triangle program!");
System.out.print("What size triangle do you want?");
int size = a.nextInt();
for (int j = 0; j < (size - 1); j++)
System.out.print(" ");
System.out.println("*");
//top line
for (int j = 1; j < (size - 1); j++)
{
for (int k = 0; k < (size - 1 - j); k++)
System.out.print(" ");
System.out.print("*");
for (int m = 0; m < 2*j-1; m++){
System.out.print(" ");
}
System.out.println("*");
}
for (int j = 0; j < size ; j++)
System.out.print("* ");
System.out.println(" ");
//bottom line
}
}
import java.util.Scanner;
阶级三角{
公共静态void main(字符串[]args){
扫描仪a;
a=新扫描仪(系统英寸);
System.out.println(“欢迎使用可伸缩三角形程序!”);
System.out.print(“您想要多大的三角形?”);
int size=a.nextInt();
对于(int j=0;j<(大小-1);j++)
系统输出打印(“”);
System.out.println(“*”);
//顶线
对于(int j=1;j<(大小-1);j++)
{
对于(int k=0;k<(大小-1-j);k++)
系统输出打印(“”);
系统输出打印(“*”);
对于(int m=0;m<2*j-1;m++){
系统输出打印(“”);
}
System.out.println(“*”);
}
对于(int j=0;j
哪一面是第三面,您试过调试代码吗?您做了哪些调试代码的工作?虽然您可能不需要额外的括号,但最好始终使用它们“它不打印第三面的原因是因为您没有打印代码。”我对是否应该嘲笑这一点深感矛盾……但是+1表示好的提示,而不是给出代码。有更好的方法吗?
import java.util.Scanner;
class Triangle {
public static void main(String[] args){
Scanner a;
a = new Scanner(System.in);
System.out.println("Welcome to the Scalable Triangle program!");
System.out.print("What size triangle do you want?");
int size = a.nextInt();
for (int j = 0; j < (size - 1); j++)
System.out.print(" ");
System.out.println("*");
//top line
for (int j = 1; j < (size - 1); j++)
{
for (int k = 0; k < (size - 1 - j); k++)
System.out.print(" ");
System.out.print("*");
for (int m = 0; m < 2*j-1; m++){
System.out.print(" ");
}
System.out.println("*");
}
for (int j = 0; j < size ; j++)
System.out.print("* ");
System.out.println(" ");
//bottom line
}
}