C++ 无模式有例外意味着什么?(数组中出现次数最多的数字)?
当问题被执行时,它正常工作,表明模式为3。教授要求“程序应该解释没有“模式”发生的“异常”——数组中的值不会出现一次以上。”问题是我不明白它被问到了什么。我不能硬着头皮干这种事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
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