在C中使用嵌套for循环打印星号图案

在C中使用嵌套for循环打印星号图案,c,loops,for-loop,C,Loops,For Loop,此代码用于打印带星号的图案,如下所示 如果输入数字,例如5 然后程序应打印以下图案。它应该按照给定的数字顺序打印*然后递减 ***** **** *** ** * 但它只打印了一行。请告诉我这里有什么毛病 #include<stdio.h> int main() { int lines,lines2; printf("Enter the number of lines : "); scanf("%d",&lines); lines2=l

此代码用于打印带星号的图案,如下所示 如果输入数字,例如5 然后程序应打印以下图案。它应该按照给定的数字顺序打印*然后递减

*****
****
***
**
*
但它只打印了一行。请告诉我这里有什么毛病

#include<stdio.h>

int main()
{
    int lines,lines2;

    printf("Enter the number of lines : ");
    scanf("%d",&lines);

    lines2=lines;
    for(;lines>0;lines--) {
        for(;lines2>0;lines2--){
            printf("*");
        }
    }
    printf("\n");

    return 0;
}
#包括
int main()
{
int行,lines2;
printf(“输入行数:”);
scanf(“%d”行和“&line”);
lines2=行;
对于(;行>0;行--){
对于(;lines2>0;lines2--){
printf(“*”);
}
}
printf(“\n”);
返回0;
}
您只需在外部循环之前初始化
lines2
一次;这就是为什么过了第一行它总是零。您应该每行重置一次,将其指定给
行的当前值。这可能就是你想要做的:

for(; lines > 0; --lines) {
    for(lines2 = lines; lines2 > 0; --lines2) {

首先:应在两个循环之间放置以下行:

lines2=lines;
Second:以下行应放在外环的
{
之前:

printf("\n");
最后的解决办法是:

#include<stdio.h>
int main()
{ 
int lines,lines2;
printf("Enter the number of lines : ");
scanf("%d",&lines);

   for(;lines>0;lines--)
  {    
       lines2=lines;
       for(;lines2>0;lines2--)
       { 
           printf("*");
       }
       printf("\n");
  } 
  return 0;
}
#包括
int main()
{ 
int行,lines2;
printf(“输入行数:”);
scanf(“%d”行和“&line”);
对于(;行>0;行--)
{    
lines2=行;
对于(;lines2>0;lines2--)
{ 
printf(“*”);
}
printf(“\n”);
} 
返回0;
}
看看这个! 它起作用了

#include<stdio.h>
main()
{ int lines,lines2;
printf("Enter the number of lines : ");
scanf("%d",&lines);
lines2=lines;
for(;lines>0;lines--)
{    for(lines2=lines;lines2>0;lines2--)
   { printf("*");
   }
printf("\n");
}
}
#包括
main()
{int行,第2行;
printf(“输入行数:”);
scanf(“%d”行和“&line”);
lines2=行;
对于(;行>0;行--)
{for(lines2=行;lines2>0;lines2--)
{printf(“*”);
}
printf(“\n”);
}
}

您刚刚更改了一些行的位置。您需要将换行符放入第一个循环:

int main() {
    int lines,lines2;

    printf("Enter the number of lines : ");
    scanf("%d", &lines);

    for(;lines>0;lines--) {
        lines2=lines;
        for(;lines2>0;lines2--){
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

有时,在调试程序时,尽可能使所有内容都可见是很有用的。可能很难看到输出中换行符的位置。在测试时,尝试打印一个可见字符,如“!”而不是“\n”,可能会有所帮助。答案至少应包含格式正确的代码。请输入您的答案。
int main() {
    int lines,lines2;

    printf("Enter the number of lines : ");
    scanf("%d", &lines);

    for(;lines>0;lines--) {
        lines2=lines;
        for(;lines2>0;lines2--){
            printf("*");
        }
        printf("\n");
    }

    return 0;
}