我得到一个范围错误和未初始化的错误与相同的变量

时间:2015-10-26 06:12:01

标签: c++

int main(){
  int a, b, num, y;
  cin >> num;
  switch (num){
    case 1: soi_cout();
      cin >> num;
      if(num == 1){
        ab_cout();
        cin >> a;
        cin >> b;
        for(int i=a; i<=b; i++){
          y += y1(i);
          return 0;
        }

        return 0;
      }
    return 0;
  }

  return 0;
}

当我使用此代码将y定义为int时,我收到错误

  

'y'可以在此函数中未初始化使用

int main(){
  int a, b, num;
  cin >> num;
  switch (num){
    case 1: soi_cout();
      cin >> num;
      if(num == 1){
        ab_cout();
        cin >> a;
        cin >> b;
        for(int i=a; i<=b; i++){
          y += y1(i);
          return 0;
        }

        return 0;
      }
    return 0;
  }

  return 0;
}

然后,当我没有将y声明为变量时,我得到了这个错误:

  

'Y未在此范围内定义'

请帮忙。我为此疯狂。

2 个答案:

答案 0 :(得分:1)

第一项业务,您必须使用它,因此您需要声明变量。这将解决您的第二个错误。

int main(){
  int a, b, num;
  int y; // THIS FIXES SECOND ERROR YOU HAVE
  y = 0; // THIS FIXES FIRST ERROR YOU HAVE

  cin >> num;
  switch (num){
    case 1: soi_cout();
      cin >> num;
      if(num == 1){
        ab_cout();
        cin >> a;
        cin >> b;
        for(int i=a; i<=b; i++){
          y += y1(i);
          return 0;
        }

        return 0;
      }
    return 0;
  }

  return 0;
}
  

&#39; Y&#39;可以在此函数中使用未初始化

这只是一个警告,您可以忽略它但不建议,只需执行

int y = 0

而不是

int y;

,你的问题就解决了。

答案 1 :(得分:0)

我不明白这个'y'是什么意思?你不用这个变量输出任何东西.....

但仅仅针对您的问题,就像错误75告诉您的那样,您应该初始化此变量。 例如:

{{1}}