我的程序应该计算数组中有多少个唯一值。到目前为止,我已经按升序对数组进行了排序(只是为了使用不同的算法),并且正在试图计算每个唯一值有多少个值(4,4,4,4,2,3,2,其中2是2和3是1)。为什么我的循环跳过我的数组中的最后一个值?
我有一个数组示例,我一直在测试这个数组,它由数字1-10组成,但是我的for循环只会计数8.这可能是明显的,但现在我只是卡住了试图找到错误。
受影响的我的代码段:
指数=阵列
for (int i = 0; i < index; i++)
{
uniqueness = true;
for (int l = 0; l < index; l++)
{
if (numbers[i] == temporary[l])
{
uniqueness = false;
}
}
if (uniqueness)
{
temporary[i] = numbers[i];
number_amount = 0;
for (int j = 0; j < index; j++)
{
if (numbers[j] == temporary[i])
{
number_amount++;
}
}
Output(temporary[i], number_amount);
}
}
你缺少代码最有趣的部分后 - “指数=数组的大小”。 –
你的循环变量最多可以达到,但不包括'index'。虽然我们无法知道“索引”究竟是什么,但名字有点怀疑。为什么不叫'长度'? –
使用'if(唯一性)'似乎是错误的。我认为它应该是相反的,'if(!uniqueness)'。 –