int towerh;
do{
    printf ("give me an integer between 1 and 23 and I will make a tower");
    int towerh = GetInt();
}while (towerh < 1 || towerh > 23);


只要towerh不在1到23之间,我就试图使此代码块循环。我不断收到错误消息,指出该变量需要初始化。

我敢肯定这是一件小事,但是我不知道如何用C语言进行评估或更正。

最佳答案

只需将int towerh;更改为int towerh = 0;。这就是所谓的初始化变量,通常C编译器会在您错过它时讨厌它。

另外,您在循环中一次又一次创建towerh,我建议在未提及的scanf上使用GetInt,这样您可以以:

int towerh = 0;
do {
    printf("Give me an integer between 1 and 23 and I will make a tower: ");
    scanf("%d", &towerh);
} while (towerh < 1 || towerh > 23);

关于c - 使用while循环输入时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41317766/

10-16 11:43