有人可以帮我提供以下主题的代码吗?
我有一个N维的int数组。我需要创建另一个数组并将第一个数字的每个数字放在那里。 对于例如 tab1 [N] = 0 0 0 1 1 1 2 2 2 4 5 ...等 结果必须是一个值为3的新数组(因为有3个零)3(因为有3个)3 1 1 ...
另外,我只需要使用For,While和If。
我创建了这段代码,但它不起作用。
int m=0;
int k = 0;
while (k<N)
{
if (tab1[k] == tab1[k+1])
{
fuqi[m]++;
k++;
}
m++;
k++;
}
答案 0 :(得分:1)
我发现这更直接。
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。
答案 1 :(得分: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++;
}
}