哪位大婶能告诉我为什么这个程序最后不能printf出结果
#include<stdio.h>#include <math.h>
void main()
{
double p[4][10]={{231,372,25,1247,31},{273,892,25,1837,30},{621,412,25,967},{871,691,25,1174,32}};//X Y坐标,成本,产能,定价,剩余库存,售空次数
double m[10][10]={{123,171,357,41,0,14637},{37,782,431,40,0,17240},{242,551,489,45,0,22005},{421,789,489,41,0,20049},{671,982,374,40,0,14960},{723,645,341,39,0,13299},{691,572,402,39,0,15878},{871,341,442,42,0,0},{792,84,482,43,0,18564},{436,278,365,44,0,16060}}; //X ,Y坐标,市场需求,定价,剩余需求,初始生物水平,总利润
double t=0.007;//单位产品的储运成本
int i,j=0;
for(i=0;i<20;i++)
{
for(j=0;j<4;j++)//给剩余库存赋初值
{ p[j][5]=p[j][3];}
for(j=0;j<10;i++)//给销售商剩余需求赋初值
{m[j][4]=m[j][2];}
for(j=0;j<10;i++)//第J个销售商依次开始采购
{ double line[4][2];//第一个存储单位成本,第二个是供应商的编号
int a,b=0;
double min=0;
for(a=0;a<4;a++)//计算每个供应商的单件商品的成本
{
double k=sqrt((p[a][1]-m[j][1])*(p[a][1]-m[j][1])+(p[a][0]-m[j][0])*(p[a][0]-m[j][0]));//距离计算
line[a][0]=p[a][4]+k*t;
line[a][1]=a;
}
for(a=0;a<4;a++)//对单件成本进行排序
{
for(b=a+1;b<4;b++)
{
if(line[a][0]>line[b][0])
{
min=line[b][0];
line[b][0]=line[a][0];
line[a][0]=min;
}
}
}
for(a=0;a<4;a++)//销售商J从四家供货商择优选择采购
{
if(m[j][4]>0)
{
int num=(int)line[a][1];
if(p[num][5]<=0)
continue;
else if(p[num][5]>=m[j][4])
{
p[num][5]-=m[j][4];
m[j][4]=0;
m[j][6]=m[j][3]*m[j][4]-line[a][0]*m[j][4];
}
else if(p[num][5]<m[j][4]&&p[num][5]>0)
{
m[j][4]-=p[num][5];
p[num][5]=0;
m[j][6]=m[j][3]*p[num][5]-line[a][0]*p[num][5];
}
}
else
break;
}
}
for(int a=0;a<4;a++)//判断供应商是否进化
{
if(p[a][6]=3)
{
p[a][3]*=1.05;
p[a][6]=0;
}
else if(p[a][5]<=0)
{
p[a][6]++;
}
}
for(int b=0;b<10;b++)//判断销售商是否进化
{
if(m[b][6]>=m[b][5])
{
m[b][2]*=1.1;
m[b][5]*=1.1;
}
}
}
printf("%lf\n",p[0][3]);//第一个生产商的产值
}