原来数据挖掘的作业,自己懒得算拿c++写着玩的,因为题目就给了七个数据让我们拿去聚类,所以数组就写死了。下午不想学习翻以前的代码发现的,传上来玩玩。
#includeusing namespace std; int j,m,n,sum=0,i=1; double a[7] = {0.0,4.0,1.5,3.0,4.5,4.0,2.5}; double b[7] = {0.0,2.5,1.0,1.5,3.5,2.5,5.0}; double C1[10],C2[10];//存储循环中的距离 int z[15] ={};//分类数组 double l1,l2,l11,l22;//临时变量 void x(double c1,double c11,double c2,double c22){//循环函数 测试完成摸鱼问题 for(j = 1; j <= 6; j++){ C1[j] = sqrt(pow(c1-a[j],2)+pow(c11-b[j],2)); printf("%.2f ",C1[j]); C2[j] = sqrt(pow(c2-a[j],2)+pow(c22-b[j],2)); printf("%.2fn",C2[j]); } printf("***** %d *****n",i++); } int zu(){//判断数字是否有变化 int js = 0; for(j = 1; j<=6; j++){ if(z[j]==z[j+6]) js++; z[j+6] = z[j]; } cout< double sum1 = 0.0,sum2 = 0.0; for(j = 1; j<=6; j++){ if(z[j]==1){ sum1 += pow(C1[j],2); } else { sum2 += pow(C2[j],2); } } printf("C1 sse: %fnC2 sse: %fnSSE = %fn",sum1,sum2,sum1+sum2); } int main() { double c1,c11,c2,c22;//x y cin>>m>>n; c1 = a[m]; c11 = b[m]; c2 = a[n]; c22 = b[n]; x(c1,c11,c2,c22);//第一次循环 z[1] = 12; while(zu()){ l1 = 0.0;l11 = 0.0;l2 = 0.0;l22 = 0.0;sum = 0; printf("C1 include:"); for(j = 1; j <= 6; j++){ if(C1[j] <= C2[j]){ l1 += a[j]; l11 += b[j]; sum++; z[j] = 1; cout< l2 += a[j]; l22 += b[j]; z[j] = 2; } } cout< 运行结果



