这个问题的代码怎么优化,让它运行的时间更短?

优化完了,但突然发现题看错了,要求求长度不小于F的连续子数列的最大平均值

给一个长度为N的一维数组,设定一个F,在N中找F个连续的数,使这F个数的和最大(这是算法问题翻译过来的意思,主要就是求最大和)
怎么对如下代码做优化呢?

#include<stdio.h>
void main()
{
    int N,i,j,k,n[100010];
    float sum,max=0,F;
    scanf("%d%f",&N,&F);
    for(i=0;i<N;i++)
        scanf("%d",&n[i]);
    for(i=0;i<N;i++)
    {
        sum=0;
        for(j=i;j<F+i;j++)
        {
            sum+=n[j];
        }
        if(sum>max) max=sum;
    }
    printf("%.0f",max*1000/F);
}

img

先让sum等于前F个数的和,然后从F+1个数开始循环,sum加上第F+i这个数,减去第i个数,然后更新最大值,这样只用遍历一遍数组