c - 使用 while 循环输入时出现问题

标签 c variables global local cs50

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/

相关文章:

c - gcc 不解析外部全局变量,有或没有 -c 选项

c - 在 C 中,如果我输入一个字符, do while 就会重复。我需要消除那个错误

c - 如何在 ext2 中打印间接 block

c++ - 如何在 C++ 中初始化 3D 数组

类型转换 GTK 杂波纹理和普通杂波纹理

r - 从一个函数中向.GlobalEnv分配多个对象

C++ 变量和函数

c语言中可以将int变量放入string中吗?

ruby-on-rails - 这个 "posts_path"变量在哪里定义的?

cocoa - 在 cocoa 应用程序中预定义全局热键和键盘布局