#include <stdio.h>
#include <stdlib.h>
int main() {
int *a, *x;
int n, k;
int i; //index
int sum=0, avg=0;
a = (int*)malloc(sizeof(int)*n);
if(a==NULL)
printf("error\n");
x = (int*)malloc(sizeof(int)*n);
if(x==NULL)
printf("error\n");
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
sum=0;
avg=0;
for(i=0; i<k; i++)
{
sum=sum+a[i];
avg=sum/(i+1)+0.5;
x[i]=avg;
}
for(i=k; i<n; i++)
{
sum=sum-a[i-3]+a[i];
avg=sum/3+0.5;
x[i]=avg;
}
for(i=0; i<n; i++)
{
printf("%d", x[i]);
}
free(a);
free(x);
return 0;
}
I want to make moving average code in C. and I made the code but it has still error :( I think I broke the basic rule in C but I don't know what it is ... Plz help me Let me show you what I want to make
Input example
6 3
1 3 2 10 6 8
Output
1 2 2 5 6 8
Input example 2
9 4
2 7 4 5 6 8 2 8 13
Output example
2 5 4 5 6 6 5 6 8