运行结果无输出,主函数如何修改?需求量的产生调用的一个函数,参考的下面的链接,应该没有问题,主函数这一部分不需要考虑
#include <stdio.h>
#include <stdlib.h>
double function(double q);
int main()
{
int Q=3000,T=3,d=1000,s=2,N=36500;
int K=N,I=0,C=0,flag=0;
while(flag==0)//当运送的时间间隔大于模拟中剩下的天数时,才进行运送货物
{
for(int i=1;i<=N;i+T)//每T天进行一次货物运输
{
I=I+Q;
C=C+d;//计算进货后的存储量,计算此次进货的费用
for(int j=1;j<=T;j++)//在一个周期内进行存储量总费用的计算
{
double q=rand()/(RAND_MAX+1.0);
double qi;
qi=function(q);//需求量
I=I-qi;//库存量
if(I<=0)
I=0;
else//还有库存时需要进行存储费用的计算
C=C+I*s;
}
K=K-T;
if(T==K)//如果运送时间间隔等于模拟中剩下的天数,无需进货
{
flag==1;
break;
}
}
printf("%lf",C*1.0/N);
return 0;
}
}
double function(double q)
{
double qi;
if(q>=0&&q<0.01)
qi = (q+0.2)*5000;
else if(q>=0.01&&q<0.03)
qi = (q+0.2)*5000;
else if(q>=0.03&&q<0.08 )
qi = (q+0.545)*2000;
else if(q>=0.08&&q<0.20)
qi = (q+1.42)*833.33;
else if(q>=0.20&&q<0.40)
qi = (q+2.5)*500;
else if(q>=0.40&&q<0.67)
qi = (q+3.515)*370.37;
else if(q>=0.67&&q<0.85)
qi = (q+2.12)*555.55;
else if(q>=0.85&&q<0.93)
qi = (q+0.47)*1250;
else if(q>=0.93&&q<0.97)
qi = (q-0.23)*2500;
else
qi= (q-0.6)*5000;
return qi;
}