我试图在C中解决你从左侧创建(半)金字塔的问题,到目前为止我已经完成了这个问题
int height;
do
{
printf("give the height of the pyramid \n");
height = GetInt();
}
while(height <= 0 || height > 23 );
for(int i = 2; i < height+2 ; i++)
{
printf("\n");
int spacenum = height - i;
//this is for space
for(int k = 0; k < spacenum; k++)
{
printf(" ");
}
//this is for hex
for(int k = 0; k < i; k++)
{
printf("#");
}
}
getint方法来自一个自定义库,它的作用类似于scanf
所以如果我给出一个论点,就说8
它看起来像这样:
##
###
####
#####
######
#######
########
#########
我希望它看起来像这样:
##
###
####
#####
######
#######
########
#########
我该怎么办? 有什么东西有更好的方式吗?用不同的代码做这样的事情?我的意思是不同的方法
答案 0 :(得分:0)
你的病情
for(int k = 0; k < spacenum; k++)
导致问题,应该是
for(int k = 0; k <= spacenum; k++)
尝试
int height;
do
{
printf("give the height of the pyramid \n");
height = GetInt();
}
while(height <= 0 || height > 23 );
for(int i = 2; i < height+2 ; i++)
{
printf("\n");
int spacenum = height - i;
//this is for space
for (int k = 0; k <= spacenum; k++) {
{
printf(" ");
}
//this is for hex
for(int k = 0; k < i; k++)
{
printf("#");
}
}