一个程序问题
#include <math.h>#include <stdio.h>
main()
{
int i,j,a1,a2,a3;
float a[150][4]={{5.1,3.5,1.4,0.2},{4.9,3.0,1.4,0.2},{4.7,3.2,1.3,0.2},
{4.6,3.1,1.5,0.2},{5.0,3.6,1.4,0.2},{5.4,3.9,1.7,0.4},{4.6,3.4,1.4,0.3},
{5.0,3.4,1.5,0.2},{4.4,2.9,1.4,0.2},{4.9,3.1,1.5,0.1},{5.4,3.7,1.5,0.2},
{4.8,3.4,1.6,0.2},{4.8,3.0,1.4,0.1},{4.3,3.0,1.1,0.1},{5.8,4.0,1.2,0.2},
{5.7,4.4,1.5,0.4},{5.4,3.9,1.3,0.4},{5.1,3.5,1.4,0.3},{5.7,3.8,1.7,0.3},
{5.1,3.8,1.5,0.3},{5.4,3.4,1.7,0.2},{5.1,3.7,1.5,0.4},{4.6,3.6,1.0,0.2},
{5.1,3.3,1.7,0.5},{4.8,3.4,1.9,0.2},{5.0,3.0,1.6,0.2},{5.0,3.4,1.6,0.4},
{5.2,3.5,1.5,0.2},{5.2,3.4,1.4,0.2},{4.7,3.2,1.6,0.2},{4.8,3.1,1.6,0.2},
{5.4,3.4,1.5,0.4},{5.2,4.1,1.5,0.1},{5.5,4.2,1.4,0.2},{4.9,3.1,1.5,0.2},
{5.0,3.2,1.2,0.2},{5.5,3.5,1.3,0.2},{4.9,3.6,1.4,0.1},{4.4,3.0,1.3,0.2},
{5.1,3.4,1.5,0.2},{5.0,3.5,1.3,0.3},{4.5,2.3,1.3,0.3},{4.4,3.2,1.3,0.2},
{5.0,3.5,1.6,0.6},{5.1,3.8,1.9,0.4},{4.8,3.0,1.4,0.3},{5.1,3.8,1.6,0.2},
{4.6,3.2,1.4,0.2},{5.3,3.7,1.5,0.2},{5.0,3.3,1.4,0.2},{7.0,3.2,4.7,1.4},
{6.4,3.2,4.5,1.5},{6.9,3.1,4.9,1.5},{5.5,2.3,4.0,1.3},{6.5,2.8,4.6,1.5},
{5.7,2.8,4.5,1.3},{6.3,3.3,4.7,1.6},{4.9,2.4,3.3,1.0},{6.6,2.9,4.6,1.3},
{5.2,2.7,3.9,1.4},{5.0,2.0,3.5,1.0},{5.9,3.0,4.2,1.5},{6.0,2.2,4.0,1.0},
{6.1,2.9,4.7,1.4},{5.6,2.9,3.9,1.3},{6.7,3.1,4.4,1.4},{5.6,3.0,4.5,1.5},
{5.8,2.7,4.1,1.0},{6.2,2.2,4.5,1.5},{5.6,2.5,3.9,1.1},{5.9,3.2,4.8,1.8},
{6.1,2.8,4.0,1.3},{6.3,2.5,4.9,1.5},{6.1,2.8,4.7,1.2},{6.4,2.9,4.3,1.3},
{6.6,3.0,4.4,1.4},{6.8,2.8,4.8,1.4},{6.7,3.0,5.0,1.7},{6.0,2.9,4.5,1.5},
{5.7,2.6,3.5,1.0},{5.5,2.4,3.8,1.1},{5.5,2.4,3.7,1.0},{5.8,2.7,3.9,1.2},
{6.0,2.7,5.1,1.6},{5.4,3.0,4.5,1.5},{6.0,3.4,4.5,1.6},{6.7,3.1,4.7,1.5},
{6.3,2.3,4.4,1.3},{5.6,3.0,4.1,1.3},{5.5,2.5,5.0,1.3},{5.5,2.6,4.4,1.2},
{6.1,3.0,4.6,1.4},{5.8,2.6,4.0,1.2},{5.0,2.3,3.3,1.0},{5.6,2.7,4.2,1.3},
{5.7,3.0,4.2,1.2},{5.7,2.9,4.2,1.3},{6.2,2.9,4.3,1.3},{5.1,2.5,3.0,1.1},
{5.7,2.8,4.1,1.3},{6.3,3.3,6.0,2.5},{5.8,2.7,5.1,1.9},{7.1,3.0,5.9,2.1},
{6.3,2.9,5.6,1.8},{6.5,3.0,5.8,2.2},{7.6,3.0,6.6,2.1},{4.9,2.5,4.5,1.7},
{7.3,2.9,6.3,1.8},{6.7,2.5,5.8,1.8},{7.2,3.6,6.1,2.5},{6.5,3.2,5.1,2.0},
{6.4,2.7,5.3,1.9},{6.8,3.0,5.5,2.1},{5.7,2.5,5.0,2.0},{5.8,2.8,5.1,2.4},
{6.4,3.2,5.3,2.3},{6.5,3.0,5.5,1.8},{7.7,3.8,6.7,2.2},{7.7,2.6,6.9,2.3},
{6.0,2.2,5.0,1.5},{6.9,3.2,5.7,2.3},{5.6,2.8,4.9,2.0},{7.7,2.8,6.7,2.0},
{6.3,2.7,4.9,1.8},{6.7,3.3,5.7,2.1},{7.2,3.2,6.0,1.8},{6.2,2.8,4.8,1.8},
{6.1,3.0,4.9,1.8},{6.4,2.8,5.6,2.1},{7.2,3.0,5.8,1.6},{7.4,2.8,6.1,1.9},
{7.9,3.8,6.4,2.0},{6.4,2.8,5.6,2.2},{6.3,2.8,5.1,1.5},{6.1,2.6,5.6,1.4},
{7.7,3.0,6.1,2.3},{6.3,3.4,5.6,2.4},{6.4,3.1,5.5,1.8},{6.0,3.0,4.8,1.8},
{6.9,3.1,5.4,2.1},{6.7,3.1,5.6,2.4},{6.9,3.1,5.1,2.3},{5.8,2.7,5.1,1.9},
{6.8,3.2,5.9,2.3},{6.7,3.3,5.7,2.5},{6.7,3.0,5.2,2.3},{6.3,2.5,5.0,1.9},
{6.5,3.0,5.2,2.0},{6.2,3.4,5.4,2.3},{5.9,3.0,5.1,1.8}
};
int e[150];
float b[3][4]={{5.1,3.5,1.4,0.2},{7.0,3.2,4.7,1.4},{6.3,3.3,6.6,2.5}};
float c1,c2,c3;
float b1[4],b2[4],b3[4];
loop: b1[0]=0;b1[1]=0;b1[2]=0;b1[3]=0;
b2[0]=0;b2[1]=0;b2[2]=0;b2[3]=0;
b3[0]=0;b3[1]=0;b3[2]=0;b3[3]=0;
for(i=0;i<=149;i++)
{
c1=sqrt(pow(a[i][0]-b[0][0],2)+pow(a[i][1]-b[0][1],2)+pow(a[i][2]-b[0][2],2)+pow(a[i][3]-b[0][3],2));
c2=sqrt(pow(a[i][0]-b[1][0],2)+pow(a[i][1]-b[1][1],2)+pow(a[i][2]-b[1][2],2)+pow(a[i][3]-b[1][3],2));
c3=sqrt(pow(a[i][0]-b[2][0],2)+pow(a[i][1]-b[2][1],2)+pow(a[i][2]-b[2][2],2)+pow(a[i][3]-b[2][3],2));
if (c1<=c2&&c1<=c3)
e[i]=1;
else if (c2<=c1&&c2<=c3)
e[i]=2;
else
e[i]=3;
}
for(a1=0,a2=0,a3=0,i=0;i<=149;i++)
{
if (e[i]==1)
{
a1=a1+1;b1[0]=a[i][0]+b1[0];b1[1]=a[i][1]+b1[1];
b1[2]=a[i][2]+b1[2];b1[3]=a[i][3]+b1[3];
}
else if(e[i]==2)
{
a2=a2+1;b2[0]=a[i][0]+b2[0];b2[1]=a[i][1]+b2[1];
b1[2]=a[i][2]+b2[2];b1[3]=a[i][3]+b2[3];
}
else
{
a3=a3+1;b3[0]=a[i][0]+b1[0];b3[1]=a[i][1]+b1[1];
b3[2]=a[i][2]+b1[2];b3[3]=a[i][3]+b1[3];
}
}
b1[0]=b1[0]/a1;b1[1]=b1[1]/a1;b1[2]=b1[2]/a1;b1[3]=b1[3]/a1;
b2[0]=b2[0]/a2;b2[1]=b2[1]/a2;b2[2]=b2[2]/a2;b2[3]=b2[3]/a2;
b3[0]=b3[0]/a3;b3[1]=b3[1]/a3;b3[2]=b3[2]/a1;b3[3]=b3[3]/a3;
if(fabs(b1[0]-b[0][0])<0.001&&fabs(b1[1]-b[0][1])<0.001&&fabs(b1[2]-b[0][2])<0.001&&fabs(b1[3]-b[0][3])<0.001&&fabs(b2[0]-b[1][0])<0.001&&fabs(b2[1]-b[1][1])<0.001&&fabs(b2[2]-b[1][2])<0.001&&fabs(b2[3]-b[1][3])<0.001&&fabs(b3[0]-b[2][0])<0.001
&&fabs(b3[1]-b[3][1])<0.001&&fabs(b3[2]-b[3][2])<0.001&&fabs(b3[3]-b[2][3])<0.001)
{
for(i=0;i<=149;i++)
{
printf("%d=%-3d",i+1,e[i]);
if(i%7==0) printf("\n");
}
}
else
{
b[0][0]=b1[0];b[0][1]=b1[1];b[0][2]=b1[2];b[0][3]=b1[3];b[1][0]=b2[0];b[1][1]=b2[1];b[1][2]=b2[2];b[1][3]=b2[3];b[2][0]=b3[0];
b[3][1]=b3[1];b[3][2]=b3[2];b[2][3]=b3[3];
goto loop;
}
}
tc下编译无错,但生成可执行文件有错,望高手指点