我的任务是创建一个标识数组中出现次数的函数,但是我没有得到正确的结果。这是我写的函数,我遗漏了程序的其余部分,因为它有效。
int countOccurences(int b[], int size, int x)
{
int occ = x;
for(int i = 0; i < size; i++)
{
if(b[i] == occ)
occ++;
}
cout << occ << endl;
return occ;
}
答案 0 :(得分:1)
如果occ
是出现次数,则应将其初始化为零而不是x
。
比较应该在b[i]
和x
之间,而不是b[i]
和occ
。
而且,作为一个旁边(不影响你的实际逻辑),在实用程序函数中实际打印出返回值也很不寻常,这显然只是返回计数但它可能你在那里只是为了调试目的。
你应该确保你的缩进和使用括号在for
和if
之间保持一致 - 这将使你的代码更容易维护。
这完全不是因为C ++在std::count()
中拥有一个<algorithm>
方法,可以为你实现而不需要编写一个函数来完成它(虽然这可能是一个教育问题,目的是学习如何对这样的事情进行编码,而不是使用容易制作的库函数来为你做繁重的工作。)
答案 1 :(得分:0)
int countOccurences(int b[], const unsigned int size, const int x)
{
int occ = 0;
for(unsigned int i = 0; i < size; i++)
{
if(b[i] == x)
{
occ++;
}
}
std::cout << occ << std::endl;
return occ;
}
occ
应该从零开始b[i]
与x
using namespace std;
是不好的做法