这段代码中出现了以下问题和警告:

  1. 在函数'ReadInput'中,变量'temp'未被使用。
  2. 在函数'ReadInput'中,没有返回语句,但函数声明了非void类型的返回值。
  3. 在函数'main'中,变量'i'未被使用。
  4. 在函数'Delete'中,对非指针类型的变量'L'使用了箭头运算符'->'。
  5. 在函数'Delete'中,对非指针类型的变量'L'使用了箭头运算符'->'。
  6. 在函数'Delete'中,对非指针类型的变量'L'使用了箭头运算符'->'。
  7. 在函数'Delete'中,对非指针类型的变量'L'使用了箭头运算符'->'。
  8. 在函数'Delete'中,对非指针类型的变量'L'使用了箭头运算符'->'。
  9. 在函数'Delete'中,对非指针类型的变量'L'使用了箭头运算符'->'。
  10. 在函数'ReadInput'中,忽略了'scanf'函数的返回值。
  11. 在函数'ReadInput'中,忽略了'scanf'函数的返回值。
  12. 在函数'main'中,忽略了'scanf'函数的返回值。

这些警告和错误提示表明代码存在一些问题,需要修复。

解决方案:

  1. 删除未使用的变量'temp'。
  2. 在函数'ReadInput'中添加返回语句,返回相应的值。
  3. 删除未使用的变量'i'。
  4. 将'L'声明为指针类型,或者使用点运算符'.'访问成员。
  5. 检查'scanf'函数的返回值,确保输入成功。

示例代码修复:

// ReadInput 函数修复
List ReadInput(List &L) {
  int num, i;
  scanf('%d', &num);
  L.last = num;
  for (i = 0; i <= L.last; i++) {
    scanf('%d', &L.Data[i]);
  }
  return L;
}

// Delete 函数修复
List Delete(List &L, ElementType minD, ElementType maxD) {
  int i, j;
  for (i = 0, j = 0; i <= L.last; i++) {
    if (L.Data[i] >= minD && L.Data[i] <= maxD) {
      L.Data[j] = L.Data[i];
      j++;
    }
  }
  L.last = j - 1;
  return L;
}

// main 函数修复
int main() {
  List L;
  int minD, maxD;
  ReadInput(L);
  scanf('%d %d', &minD, &maxD);
  Delete(L, minD, maxD);
  return 0;
}

通过以上修复,代码将更加稳定可靠,避免了潜在的错误。

C++ 代码错误分析:a.cpp 中的警告和错误

原文地址: http://www.cveoy.top/t/topic/pb4q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录