创建一系列频率

Creating an array of frequencies

本文关键字:频率 一系列 创建      更新时间:2023-10-16

有人可以为我提供以下主题的代码吗?

我有一个n维的int阵列。我需要创建另一个数组,并将第一个数字的每个数字的频率放在那里。例如TAB1 [n] = 0 0 0 1 1 1 2 2 2 4 5 ...等结果必须是一个具有值的新数组:3(因为有3个零)3(因为有3个)3 1 1 ...

另外,我只需要用于,如果是。

我创建了此代码,但不起作用。

int m=0;
int k = 0;
while (k<N)
{
    if (tab1[k] == tab1[k+1])
    {
       fuqi[m]++;
       k++;
    }  
    m++;
    k++;
}

我发现这更直接。

for (int i = 0; i < N; i++) {
  fuqi[i] = 0;
}
fuqi[0] = 1;
for (int i = 1, j = 0; i < N; i++) {
  if (tab1[i - 1] == tab[i])
    ++fuqi[j];
  else 
    ++fuqi[++j];
}

请注意,我跳过检查n ==0。

尝试以下:

假设fugi设置为0

int m=0;
for(int i = 0; i < N; i++)
{
    fuqi[m]++;
    if (!(i == N - 1 || tab1[i] == tab1[i+1]))
    {
        m++;
    }
}