这个程序不运行它只是要求高度,然后从那里没有进一步的东西。当我运行检查 50 时,它指示我接受 foo 和其他 a 等值,所以我用 scanf 替换了 printf,一切都停止了工作。
也有人可以指导我如何使程序不断要求 2 到 8 之间的高度直到它的真实?截至目前,它会发出一条消息,输入 2 和 8 之间的数字并停止。
int main()
{
int height;
do {
height =get_int("Height: ");
scanf("%d", &height);
if ( height<1 || height>8) {
printf ("Kindly Enter A Number Between 2 & 8 !n");
return 0;
}
}
while (height <1 || height>8);
for(int i=0; i<height ; i++) // Row Number
{
for (int j=0; j<height ;j++)
{
if (i+j >= height-1)
printf("#");
else
printf (" ");
}
printf("n");
}
}
删除if
语句中的return 0;
语句。main
函数中的return
语句会立即终止程序。
为什么要height
两次:
height =get_int("Height: ");
scanf("%d", &height);
这就足够了:scanf("%d", &height);
。
也总是检查scanf
的回报。
如前所述,删除return 0
因为否则当您到达它时,您的程序将立即结束。
我假设你想要的是这样的东西:
int height;
do {
if (scanf("%d", &height) == 1);//checking the result of scanf function
else
exit(EXIT_FAILURE);
if (height < 1 || height>8) {
printf("Kindly Enter A Number Between 2 & 8 !n");
//removing return 0
}
}
while (height < 1 || height>8);