C++ 无模式有例外意味着什么?(数组中出现次数最多的数字)?

C++ 无模式有例外意味着什么?(数组中出现次数最多的数字)?,c++,algorithm,C++,Algorithm,当问题被执行时,它正常工作,表明模式为3。教授要求“程序应该解释没有“模式”发生的“异常”——数组中的值不会出现一次以上。”问题是我不明白它被问到了什么。我不能硬着头皮干这种事 void showArray(const int[], int); void showMode(int [], int); using namespace std; int main() { const int Size = 11; //size of the array int test[Size

当问题被执行时,它正常工作,表明模式为3。教授要求“程序应该解释没有“模式”发生的“异常”——数组中的值不会出现一次以上。”问题是我不明白它被问到了什么。我不能硬着头皮干这种事

void showArray(const int[], int); 
void showMode(int [], int);

using namespace std;

int main()
{
    const int Size = 11; //size of the array
    int test[Size] = {1, 2, 3, 3, 3, 2, 2, 1, 3, 4, 5}; //elements of the array

    cout << "The Numbers in the Array are: \n";
    showArray(test, Size); //displays the array in its original order

    showMode(test, Size);

    return 0;
}

void showArray(const int arr[], int Size) 
{
    for(int count = 0; count < Size; count++)
        cout << arr[count] << " ";
    cout << endl;

}

void showMode(int test[], int Size)
{
    int counter = 1;
    int max = 0;
    int mode = test[0];

    for(int pass = 0; pass < Size - 1; pass++)
    {
        if(test[pass] == test[pass + 1])

            {
                counter++;
                if(counter > max)
                {
                    max = counter;
                    mode = test[pass];
                }
            }
        else
            counter = 1;
    }
    cout << "The Mode of the Array is: " << mode << endl;
}
void showArray(常量int[],int);
无效显示模式(int[],int);
使用名称空间std;
int main()
{
const int Size=11;//数组的大小
int test[Size]={1,2,3,3,3,2,2,1,3,4,5};//数组的元素

cout在测试软件时,您希望有包含所有不同分支的测试用例。现在,您只演示了当给定输入阵列具有唯一的最高频率元素时,代码才起作用

您的教授还希望您在最高重复次数不是唯一的情况下进行测试

这通常被称为拐弯案

教授的措辞是不幸的。单词异常在C++中有特定的含义,而不是……除非你的指令在最高重复计数不是唯一的时候实际抛出异常。 好的附加测试用例包括:

  • 长度为零的数组

    {}
    
  • 长度为1的数组

    { 7 }
    
  • 双向接头,可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • N向接头可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • 领带被第一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 领带被最后一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 其他元素的“运行”时间更长


如果您的代码在所有这些情况下都给出了正确的结果,那么您将对所有输入都有很高的信心。

在测试软件时,您希望测试用例包含所有不同的分支。现在,您只演示了在给定输入阵列具有唯一的最高频率元素时,代码才起作用。

您的教授还希望您在最高重复次数不是唯一的情况下进行测试

这通常被称为拐弯案

教授的措辞是不幸的。单词异常在C++中有特定的含义,而不是……除非你的指令在最高重复计数不是唯一的时候实际抛出异常。 好的附加测试用例包括:

  • 长度为零的数组

    {}
    
  • 长度为1的数组

    { 7 }
    
  • 双向接头,可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • N向接头可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • 领带被第一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 领带被最后一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 其他元素的“运行”时间更长


如果您的代码在所有这些情况下都给出了正确的结果,那么您将对所有输入都有很高的信心。

在测试软件时,您希望测试用例包含所有不同的分支。现在,您只演示了在给定输入阵列具有唯一的最高频率元素时,代码才起作用。

您的教授还希望您在最高重复次数不是唯一的情况下进行测试

这通常被称为拐弯案

教授的措辞是不幸的。单词异常在C++中有特定的含义,而不是……除非你的指令在最高重复计数不是唯一的时候实际抛出异常。 好的附加测试用例包括:

  • 长度为零的数组

    {}
    
  • 长度为1的数组

    { 7 }
    
  • 双向接头,可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • N向接头可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • 领带被第一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 领带被最后一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 其他元素的“运行”时间更长


如果您的代码在所有这些情况下都给出了正确的结果,那么您将对所有输入都有很高的信心。

在测试软件时,您希望测试用例包含所有不同的分支。现在,您只演示了在给定输入阵列具有唯一的最高频率元素时,代码才起作用。

您的教授还希望您在最高重复次数不是唯一的情况下进行测试

这通常被称为拐弯案

教授的措辞是不幸的。单词异常在C++中有特定的含义,而不是……除非你的指令在最高重复计数不是唯一的时候实际抛出异常。 好的附加测试用例包括:

  • 长度为零的数组

    {}
    
  • 长度为1的数组

    { 7 }
    
  • 双向接头,可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • N向接头可实现最高重复计数

    { 1, 2, 3, 2, 1 }
    { 1, 1, 2, 3, 3 }
    
    { 1, 3, 5, 4, 2 }
    
  • 领带被第一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 领带被最后一个元素打破了

    { 2, 6, 3, 2, 4, 5, 2, 6, 9 }
    
    { 6, 3, 2, 4, 5, 2, 6, 2 }
    
  • 其他元素的“运行”时间更长



如果您的代码在所有这些情况下都给出了正确的结果,您将有很高的信心,它对所有输入都是正确的。

给定数据{1,2,3,4,5,6,7,8},没有重复值,因此没有模式。如果没有模式,请适当地处理。@ThomasMatthews:或者有一个八向关系(显然5比9更经常出现)我认为这不会给你模式。它只对给定的数据起作用,因为模式彼此相邻。我认为你需要更改if语句。if(test[pass]==mode)@user2970916:我认为它是为排序数组编写的。不过,他缺少实际排序的函数。给定数据{1,2,3,4,5,6,7,8},没有重复的值,因此没有模式。如果没有模式,请适当处理它。@ThomasMatthews:或者有一个八向平局(显然5比9更经常出现)我认为这不会给你模式。它只对给定的数据起作用,因为模式彼此相邻。我认为你需要更改if语句。if(test[pass]==m