我試圖寫一個遞歸函數,它通過指針和它的大小獲取數組,並返回數組中最長的一系列相同的相鄰數字的長度(假設有一個系列),查找一個遞歸序列
例如:
array: {1 2 3 3 4 5 6 6 6 6 7 8}
returns-->: 4
,但我不知道這有什麼錯我的功能;我想我錯了。
關於如何解決它的任何想法?
#include <stdio.h>
#include <stdlib.h>
int LongestSeries(int* arr, int size, int* count, int* maxcount);
int main()
{
int i, size, *arr, count=0, maxcount=0;
// allocation an array (unknow size)
{
printf("Enter Size of the Array-->:");
scanf("%d", &size);
arr = (int*)malloc(size * sizeof(int));
if (arr == NULL)
{
printf("Error!!");
exit(1);
}
printf("Enter Numbers for the Array:\n");
for (i = 0; i < size; i++)
{
printf("Enter a Number-->:");
scanf("%d", &arr[i]);
}
}
for (i = 0; i < size; i++)
printf(" %d ", arr[i]);
printf("\n");
printf(" %d \n", LongestSeries(arr, size, count, maxcount));
free(arr);
return 0;
}
int LongestSeries(int* arr, int size, int* count, int* maxcount)
{
if (arr[size-1] == arr[size-2])
count++;
if (maxcount<count)
maxcount = count;
LongestSeries(arr, size - 1, count, maxcount);
if (*arr==arr[0])
return maxcount;
}
我們在這裏不是寫你碼。請學會使用你的調試器 – Fureeish
那麼,你想找到最長的重複序列序列,而不是最長的連續數字序列?在你的例子中,這兩個都是4。 –
如果兩個都是指針,你比較'maxcount
vu1p3n0x