cs50 pset1 water.c编译时遇到错误

时间:2017-03-22 09:27:54

标签: c cs50

以下代码抛出编译错误。我是编程新手,所以不知道还能做什么。我按照课堂上的教学方式做了但不能正确。有谁请帮我解决一下?

#include<stdio.h>
#include<cs50.h>

int main(void)
{
   int y; 
do
{
   printf("Minutes: ");
   int Minutes = get_int();
}
while(Minutes< 0);

y= Minutes * 12;
printf("Bottles: %i\n", y);
}

它引发了以下错误:

water.c:10:8: error: unused variable 'Minutes' [-Werror,-Wunused-variable]
   int Minutes = get_int();
   ^
water.c:12:7: error: use of undeclared identifier 'Minutes'
while(Minutes< 0);
  ^
water.c:14:4: error: use of undeclared identifier 'Minutes'
y= Minutes * 12;
   ^
    3 errors generated.
make: *** [water] Error 1

3 个答案:

答案 0 :(得分:1)

您在Minutes块的范围内定义了do。这意味着它只能在同一范围内使用 - 即。封闭块的{}之间。

然而,您正在使用该范围之外的变量(实际上是两次)。

而是在Minutes循环之前定义do

int Minutes = 0;
do {
    printf("Minutes: ");
    Minutes = get_int();
}
while(Minutes< 0);

这将它放在main函数体的范围内,因此它可以在main函数的任何位置使用(在其定义之后)。

答案 1 :(得分:0)

int Minutes被声明为循环体的局部,这意味着循环条件while(Minutes< 0)不知道&#34;分钟&#34;是

简单地将声明移出循环,在它上面。

答案 2 :(得分:0)

这是答案

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    printf("minutes: ");
    int minutes = get_int();

    printf("bottles: ");
    int bottles = get_int();

    printf("%i\n divided %i\n is %i\n", minutes, bottles, minutes / bottles);
}