高手:帮我调试一下这个程序啊
我编的是一个关于最优分割的程序,但在调试时,总是说'X'、'j'没有初始化(下面用红颜色标注出来了。请高手帮我调试一下#include <iostream>
double D(int,int,double);
int main()
{
using namespace std;
const double X[30]={1.16,1.98,2.15,2.01,1.73,\
1.45,1.42,1.22,1.18,1.13,\
1.16,1.11,1.01,1.05,0.96,\
0.85,0.68,0.57,1.37,1.54,\
1.11,0.58,0.8,0.7,1.02,\
0.99,0.69,0.22,0.46,0.3};
double d,s=10000000;
int j[9],K[9];
for(j[8]=28;j[8]>=9;j[8]--)
{d=D(j[8],29,X[30]);
for(j[7]=j[8]-1;j[7]>=8;j[7]--)
{d=d+D(j[7],j[8],X[30]);
for(j[6]=j[7]-1;j[6]>=7;j[6]--)
{d=d+D(j[6],j[7],X[30]);
for(j[5]=j[6]-1;j[5]>=6;j[5]--)
{d=d+D(j[5],j[6],X[30]);
for(j[4]=j[5]-1;j[4]>=5;j[4]--)
{d=d+D(j[4],j[5],X[30]);
for(j[3]=j[4]-1;j[3]>=4;j[3]--)
{d=d+D(j[3],j[4],X[30]);
for(j[2]=j[3]-1;j[2]>=3;j[2]--)
{d=d+D(j[2],j[3],X[30]);
for(j[1]=j[2]-1;j[1]>=2;j[1]--)
{d=d+D(j[1],j[2],X[30]);
for(j[0]=j[1]-1;j[0]>=2;j[0]--)
{d=d+D(j[0],j[1],X[30]);
d=d+D(-1,j[0],X[30]);
if(s>d)
{s=d;
K[9]=j[9];}
}
}
}
}
}
}
}
}
}
printf("K[9]=%d",K[9]);
}
D(int a,int b,double x[30])
{float y=0,z=0;
int i,c;
i=b-a;
a=a+1;
c=a;
for(a;a<=b;a++)
{
y=y+x[a];
}
y=y/i;
for(c++;c<=b;c++)
{
z=z+(x[c]-y)*(x[c]-y);
}
return(z);}