【发布时间】:2016-12-24 23:59:16
【问题描述】:
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; do{ printf ("给我一个 1 到 23 之间的整数,我会做一个塔");塔 = GetInt(); }while (towerh 23);'
-
你应该添加cs50标签
-
问题是你有两个变量叫做
towerh,一个在循环体中声明,一个在循环体之外。循环条件测试循环外定义的变量,但GetInt()读取的值被赋值给循环内定义的变量。这超出了右括号的范围。您只需将int放在循环内即可分配给循环外定义的变量。这就是 Daulton Sink 所展示的内容——但并未完全解释。
标签: c variables global local cs50