在C语言中,这是一个语法错误。
C语言中参数的定义必须放在函数体的开头。作出以下更改:
#包括< stdio, h >
#包括<时间。H >
# include < stdlib。H >
定义randomize()srand((无符号)time(NULL))//定义一个宏来生成随机数
定义N10//次的重新部署
#定义RealPage4
页面结构
{
Intpn;//页码
IntPFN。//页码
Int*;
//structPage*next;//转到下一页
};
Intcount,k,I,j,flag,call[N]
StructPageMemPage[RealPage];
Void输出()
{intp;
Printf("\n\n----------------------------内存页-------------------------------------\n”);
Printf(“调度顺序:”);
对于(p = 0;P < N. P++)
Printf("%d",调用[p]);
Printf("\n");
对于(k = 0;K < RealPage;K + +)
“序列号:%d虚拟页码:%d实际页码:%d时间:%d计数:%d\n”,k,MemPage[k]。Pn,MemPage[k]。PFN,MemPage[k]。
}
Intmain()
{intinit_t;
数=0;//换掉柜台
For (init_t = 0;Init_t < RealPage;Init_t + +)
//MemPage[init_t]PFN=1;
随机();
Printf(“调度顺序:”);
For (I = 0;I < N. I++)
{
调用[I]=rand()%10;
Printf("%d",调用[I]);
}
//日程开始了
For (I = 0;I < N. I++)
{intm,r,n=755599998;
标志=1;
对于(m = 0;M < RealPage && MemPage [M]。Pn !=叫[我];M + +)
{
如果(MemPage[m]。PFN==0){
MemPage[m]。PFN=3478-m*79;
MemPage[m]。*=1;
MemPage[m]。Pn=call[I];
数++;
打破;
}
}
//输出();
对于(j = 0;J < 4 &&国旗!= 0;J + +)
{
如果(调用[I]==MemPage[j]。杂志的pn)
{
国旗=0;
打破;
}
//该页面无法在真实页面中找到,因此使用LRU算法替换
其他的
{
如果(j==realpage-1)//这意味着您已经比较了所有页面一次,但仍然无法找到相同的页面
{
Intt1,t2,temp。
对于(t1 = 0;T1 < RealPage;计算内存中最长的时间并替换它
{
为(t2 = t1 + 1;T2 < RealPage;T2 + +)
If (MemPage [t1]乘以> MemPage [t2]次)
Temp=t1;
其他的
Temp=t2;
}
MemPage(临时)。Pn=call[I];//替换
MemPage[\]。*=1;重新启动计时器
数++;
}
}
}
对于(r = 0;R < RealPage;R + +)
MemPage[r]。*++;
而(n-);
输出();
}
Printf("\n缺页率:%f\n\n",(浮点数)count/10);
返回0;
扩展资料:
注意事项:
函数的参数分为形参和实参。
形式参数出现在函数定义中,可以在整个函数中使用,但是没有函数就不能使用它们。参数出现在主函数中,进入函数调用,实变量不能使用。
参数和变元的作用是进行数据传输。当调用函数时,将参数值传递给函数的参数,实现参数到函数的数据传递。
这里有一个例子:
定义一个函数s=f(a,b),它将a和b之间的差赋给s,因此a和b是函数的两个参数。