私はの再帰的な関数を書くと、ポインタとそのサイズで配列を取得し、配列内の同じ長さの連続する長さの系列の長さを返します。シリーズ)、例えば再帰を伴う系列を見つける
:
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