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

I am getting a scope error and uninitialized error with same variable

本文关键字:错误 初始化 变量 范围 一个      更新时间:2023-10-16
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为整型时,我得到了错误

'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在此范围内未定义'

请帮助。我要疯了

首先,您必须创建一些东西来使用它,因此您需要声明变量。这将修复第二个错误。

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;
}

'y'可以在未初始化的情况下使用

这只是一个警告,你可以忽略它,但这是不可取的,只是执行

int y = 0
不是

int y;

我不明白这个'y'是什么意思?您不用使用这个变量.....

输出任何内容

但是对于你的问题,就像错误75告诉你的那样,你应该初始化这个变量。例如:

63 int main(){
 64     int a, b, num, y;
 65     cin >> num;
 66 switch (num){
 67
 68     case 1: soi_cout();
 69             cin >> num;
 70                     if(num == 1){
 71                         ab_cout();
 72                         cin >> a;
 73                         cin >> b;
                            y = 0;  //or any number you want to initialize
 74                         for(int i=a; i<=b; i++){
 75                         y += y1(i);//you can't just declare this 'y' because you used it in there
 76                         return 0;
 77                         }
 78
 79                         return 0;
 80                     }
 81                     return 0;
 82                 }
 83
 84
 85 return 0;
 86 }