【发布时间】:2020-01-12 23:58:23
【问题描述】:
练习:编写一个程序,读取一个自然数n并绘制一个星号金字塔。 n = 5的型号:
*
***
*****
*******
*********
代码:
int main ()
{
int n, i, j=1, aux1, aux2;
int spaces=1;
scanf ("%d", &n);
for (i=0; i<n; i++)
{
spaces += 1;
}
printf ("\n");
for (i=0; i<n; i++)
{
aux1 = j;
aux2 = spaces;
while (aux2 >= 1)
{
printf (" ");
aux2--;
}
while (aux1 >= 1)
{
printf ("*");
aux1--;
}
j += 2;
spaces--;
printf ("\n");
}
return 0;
}
我的代码从在线法官那里收到“Presentation Error”,因为每行的最后一个星号后面都有一个空格。 有关如何修复它的任何提示?
【问题讨论】:
-
每行末尾少打印一个空格?
-
您是否验证过它实际上是在后面包含一个空格?
-
是的,斯科特·亨特。
-
使用您的代码,我无法理解为什么每行末尾都有一个空格。但在每一行的开头,有 2 个单独的空格。
-
如果您指的是换行,只需将
\n添加到您的printf("\n\n");