【发布时间】:2013-06-05 16:20:21
【问题描述】:
我正在尝试编写一个程序来返回一个整数值,该整数值表示最长的重复数字的长度。 (例如,整数数组,例如 2、4、4、1、3、4、4、4、4、4、6、6、6 将返回值 5,因为 5 个 4 是最长的运行。)我已经尝试编写代码,但它一直返回我数组中的元素总数。怎么了?
int length(int array[], int size)
{
int x = 0, max;
int result[size];
for (int i = 0; i < size; i++)
{
x = i + 1;
if (array[i] == array[x])
{
result[i] = x + 1;
}
if (result[i] > result[x])
{
max = result[i];
}
}
return max;
}
【问题讨论】:
-
作为提示 - 您可能希望同时跟踪当前计数和单独的“迄今为止我见过的最大计数”。如果您需要更详细的答案,请告诉我。
-
一个
max()函数应该这样做 -
您需要一个数组来存储每个数字的计数,而不仅仅是一个特定的。
-
你可以对你的数组进行排序,如果你的整数范围很小,计数排序是一个不错的选择
-
@Nile 你想到的是 C++ 而不是 C