我需要让用户输入一个高度值,如果它高于 23 或小于 0,它应该再次询问。然后它应该打印一个金字塔,有点像马里奥兄弟游戏结束时的楼梯(右侧有 2 个标签,参见示例)。问题是代码运行并且不打印任何#,代码刚刚结束。这是一个在线课程,所以请不要只发布代码,如果您要发布完整的代码,请解释它。
金字塔示例:https ://www.dropbox.com/s/4fyg2ls0eml7asi/Screenshot%20from%202014-03-20%2002%3A15%3A08.png
我遵循的流程图:http: //i.imgur.com/otuDOtK.png
#include <stdio.h>
//#include "cs50.h"
int main(void){
//int h = 0;
printf("Enter height between 0 and 23: ");
int h = scanf("%d", &h);
while (h < 0 || h > 23){
printf("Retry: ");
h = scanf("%d", &h);
}
int l = 1;
if (h == 0){
//printf("ln21\n"); //Debug
return;
}
int s = h - 1;
int b = l + 1;
if (s == 0){
if (b == 0){
printf("\n");
h = h - 1;
l = l + 1;
if (h == 0){
return;
}
}
}
else{
printf("#");
b = b - 1;
}
}