哪位高手帮我把这个PASCAL转换成C啊

来源:百度知道 编辑:UC知道 时间:2024/06/20 05:06:11
#define r0=0.00001;
maxn=100000;
var //变量定义
n,f:longint;
left,right,mid:real;
avg,sum:array[0..maxn]of longint;
procedure init; //输入过程
var
i,x:longint;
begin
fillchar(sum,sizeof(sum),0); //数组sum内所有元素写0
left:=0;right:=100000;
readln(n,f);
for i:=1 to n do
begin
readln(x);
if x>right then right:=x;
if x<left then left:=x;
sum[i]:=sum[i-1]+x;
end;
end;
function check:boolean; //函数(为布尔型)
var
temp,k,i,now:longint;
begin
now:=1;i:=0;
for k:=f to n do
begin
inc(i); //累加器,表示i:=i+1
temp:=k-f;
if sum[temp]-temp*mid>sum[avg[i]]-avg[i]*mid then
begin
inc(i);
avg[i]:=temp;
end

#define r0 0.00001
#define maxn 100000

long n,f;
float left,right,mid;
long avg,sum[maxn];

void init(){
long i,x;
fillchar(sum,sizeof(sum),0);
left=0;
right=100000;
scanf("%ld%ld",&n,&f);
for (i=1;i<=n;i++){
scanf("%ld",&x);
if (x>right) right=x;
if (x<left) left=x;
sum[i]=sum[i-1]+x;
}
}

int check(){
long temp,k,i,now;
now=1;
i=0;
for (k=f;k<=n;k++){
i++;
temp=k-f;
if (sum[temp]-temp*mid>sum[avg[i]]-avg[i]*mid) {
{
i++;
avg[i]=temp;
}
else{
while ((sum[temp]-mid*temp<=sum[avg[i]]-mid*avg[i])and(i>0)) i++;
i++;
avg[i]=temp;
}
if (now>i) now=i;
while (k-avg[now]>n) now--;
if (sum[k]-sum[avg[now]]-mid*(k-avg[now])>=0) return(1);
}
return(0);
}

void work(){
while (right-left>r0){
mid=(