运行结果无输出,主函数如何修改?需求量的产生调用的一个函数,参考的下面的链接,应该没有问题,主函数这一部分不需要考虑

运行结果无输出,主函数如何修改?需求量的产生调用的一个函数,参考的下面的链接,应该没有问题,主函数这一部分不需要考虑

img

http://t.csdn.cn/vXofr

 #include 
#include 
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;
}


img

死循环了吧,flag一直为0

i +T
改为
i +=T
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^