c - C中的星号金字塔
问题描述
练习:编写一个程序,读取一个自然数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;
}
我的代码从在线法官那里收到“演示错误”,因为每行的最后一个星号后面都有一个空格。有关如何修复它的任何提示?
解决方案
您的代码在每一行的开头都有空格,而不是结尾。
这是我能想到的解决该问题的最简单方法:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, height;
scanf("%d", &height);
for (i = 0; i < height; i++) {
for (j = 0; j < height - i - 1; j++)
putchar(' ');
for (; j < height + i; j++)
putchar('*');
putchar('\n');
}
return EXIT_SUCCESS;
}
推荐阅读
- d3.js - 如何将拖动的节点粘贴到 D3 中
- c - 为什么 printf 不能在 c 中使用多线程?
- python - 神经网络错误“不兼容的形状”
- flutter - 如何模糊 Flutter 中的 BottomNavigationBar?
- spring - Junit:状态预期 <200> 但它是 <400>
- javascript - 如何在 Object 中使用可以正确渲染的 snapshotChanges()?
- file - withFile 提前关闭文件
- node.js - heroku 中的“未为 webpack-dev-server 启用 HMR”错误
- javascript - Three.js:动画 gltf 模型在 three.js 中看起来不连贯
- reactjs - 如果 this.node 是反应组件的 ref,则 this.node.contains 不起作用