这是我做的一个操作系统页面先进先去的算法,大家帮忙看看!!
#include<stdio.h>
#define m 100
main()
{ int work[m];
int pagenum;
int i,j,id,pageid=0,flag=0,huan=0,k=0;
float d=0,adp=0,sum=0;
printf("\nname: wangge id:015\n");
printf("Please input pagenum:");
scanf("%d",&pagenum);
while(1)
{ pageid++;
printf("\nPlease No%d page:",pageid);
scanf("%d",&id);
if(id>0)
{ sum++;
for(i=0;i<pagenum;i++)
{
if(work[i]==id)break;
if(i==pagenum-1)
{
printf("\njin lai page:%d",id);
huan=work[k];
work[flag]=id;
flag++;
adp++;
if(adp>pagenum)
{printf("\nhuan chu page:%d",huan);
k++;
if(k==pagenum) k=0;}
if(flag==pagenum) flag=0;
}
}
}
else
{ printf("sum=%f\n",sum);
printf("adp=%f\n",adp);
d=adp/sum*100;
printf("lost page rate%f",d);
d=0;
free(work);
exit(0);
}
}
}
大家帮忙指点指点
想和大家交个朋友:www.gege163.com
问题点数:20、回复次数:5Top
1 楼shafish(笨蛋)回复于 2005-07-02 19:20:51 得分 0
几个意见:
第一:缺乏必要的注释
第二:宏定义最好大写
第三:在你的程序中,建议用匈牙利的命名法,要不就用有意义的命名法.
第四:对于像这样的运算d=adp/sum*100;虽然大家知道怎么算,不过最好还是加括号
第五:希望在每个函数的前面写一下具体的算法过程.
第六:main函数一般需要给一个返回值.虽然也可以不给,不过函数总会有返回值的.
第七:free(work);不是很清楚你的意思.free一般是释放堆上的东西啊.
第八:希望有换行,程序不要堆在一起.
慢慢练习吧.Top
2 楼OnlySong()回复于 2005-07-02 19:48:35 得分 0
呵呵
头疼
不明白什么意思Top
3 楼sonyfan(门外汉)回复于 2005-07-03 14:39:14 得分 0
看不懂
Top
4 楼MagicCarmack(MagiC++)回复于 2005-07-03 22:49:32 得分 0
程序风格问题多注意一下!Top
5 楼ihavenoidea(正)回复于 2005-07-03 23:18:08 得分 0
程序风格最好从一开始就注意~Top




