我无法打印完整的星形图案。我想打印
*
* *
* * * * * * *
* * * *
* *
* * * *
* * * * * * *
* *
*
我的代码问题是我无法弄清楚如何打印第4和第5行的第一部分。 我的代码:
//print A
int i, j, k = 0,n=2;
for (i = 1; i <= n; i++)
{
// Print spaces
for (j = 7; j > i; j--) {
System.out.print(" ");
}
// Print *
while (k != (2 * i - 1)) {
if (k == 0 || k == 2 * i - 2)
System.out.print("*");
else
System.out.print(" ");
k++;
;
}
k = 0;
// print next row
System.out.println();
}
//print middle line
for(i=0;i<7;i++)
{
System.out.print("* ");
}
System.out.println();
//print V
int hight=2;
int rowLen = (hight-1)*2;
for(i=0; i<hight; i++){
//print space
for(int s=11;s>hight;s--)
{
{
System.out.print(" ");
}
}
//print *
int start = i;
int end = rowLen-i;
for(j=0;j<=rowLen; j++){
if(j==end){
System.out.println("*");
break;
}
else if(j==start){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
}
for(i=0;i<12;i++)
{
if(i==1 || i==3 || i==9 || i==11)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
System.out.println();
//print middle line
for(i=0;i<7;i++)
{
System.out.print("* ");
}
System.out.println();
//print V
int hight1=2;
int rowLen1 = (hight1-1)*2;
for(i=0; i<hight1; i++){
//print space
for(int s=7;s>hight1;s--)
{
System.out.print(" ");
}
//print *
int start1 = i;
int end1 = rowLen1-i;
for(j=0;j<=rowLen1; j++){
if(j==end1){
System.out.println("*");
break;
}
else if(j==start1){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
}
使用上面的代码我能够得到这个o / p
*
* *
* * * * * * *
* *
*
* * * *
* * * * * * *
* *
*
应该在第46-52行添加什么代码才能完成星标。如果可能的话,请告诉我的代码是否符合编程标准。我是新手。
答案 0 :(得分:-1)
这个怎么样:
if
关于标准,你会发现大多数人把起始大括号放在与for
,//print space
相同的一行,......至少要保持一致。我删除了sudo systemctl restart mysql
循环中不必要的块。如果您确实在代码中保留了块,则块中的代码行应缩进。