c ++将一个一个地添加到数组直到满

c++ adding one by one to array till full

我正在尝试将 a 的一个等级添加到数组直到满,然后我需要 return 为真。

无效我正在使用 = cpp.sh/9np2

这是代码

void GetGrades(StatsList* stats)
{
  ListType grade = 0;
  while (grade != -1)
 {
    cout << "Enter grade (-1 quits):";
    cin >> grade;
    if (!cin)
    {
        cin.clear();
        cin.ignore(2000, '\n');
        cout << "Invalid number" << endl;
    }
    else if (grade >= MINGRADE && grade <= MAXGRADE)
    {       
        if (!stats->NewGrade(grade))
        {
            cout << grade << " not entered - grade list is full" << endl;
        }
    }
    else
    {
        if (grade != -1)
            cout << "Grade out of range" << endl;
    }

 }
}

class 我正在使用的函数 = cpp.sh/2jkz

bool StatsList::NewGrade(ListType grade)
{
  int i = 0;
  bool full = (List[6] == '[=11=]');

  if (full){
      List[i] = grade;
      i++;
      cout << grade;
 }
  return false;
}

我累了 AF 我似乎无法弄清楚我做错了什么请帮助一个女孩。我只是想在睡觉前了解我做错了什么。

bool StatsList::NewGrade(ListType grade) 中有几个问题。

  1. i 需要从一个调用到另一个调用保持不变,否则它将在函数开始时始终设置为 0。我建议给它起一个更具描述性的名称,例如 listindex 并使其成为成员变量。
  2. 没有return true。放置它的合乎逻辑的位置似乎是在 if (full) 主体内的末尾。

关于 full 的一句话。如果 List 满,则 full 为真。这种命名的不真实只会误导人们,导致以后维护代码的人注入错误。我建议更改名称或更改其使用方式。更改名称对我来说似乎更合乎逻辑。