Я хочу, чтобы код объединял входной массив в блоки с заданной разницей.
Например:
[20,23,26,28,30,37,45,47,50,60,63,65] -> [[20, 23, 26, 28, 30], [45, 47, 50], [60, 63, 65]] difference of 5.
Примечание. Решение должно иметь O (n) сложность по времени.
Код:
#include<stdio.h>
int main()
{
int a[100],i,n,diff;
printf("Enter size of the array: ");
scanf("%d",&n);
printf("\nEnter the difference: ");
scanf("%d",&diff);
printf("\nEnter an array: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n[");
for(i=0;i<n-1;i++)
{
if((a[i+1]-a[i]) < diff)
{
printf("%d,",a[i]);
if(!((a[i+2]-a[i+1]) < diff))
printf("%d",a[i+1]);
}
else
printf("\n");
}
printf("]");
return 0;
}