⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kmeans.cpp

📁 单一聚类值得算法 里面的数据要自己手工输入 之后看结果
💻 CPP
字号:
#include<stdio.h>
#include<math.h>
void main()
{

 int i,j,SS=0,n=0;
 float zx,zy,zx_l,zy_l;
 float X[100][2],S[100][2];

 //数据输入

 
 verify:
 printf("请输入数据的个数----个数小于100的整数!否则重新输入----:");
 scanf("%d",&n);
 
 if(n>100){

	 goto verify;
 }

 else {
 
       printf("依次输入各数据的坐标\n");
       for(i=0;i<n;i++)
	   {
          for(j=0;j<2;j++)
		  {
            if(j==0)
			{
              printf("X[%d]x=",i+1);
              scanf("%f",&X[i][j]);
			}
            else
			{
              printf("X[%d]y=",i+1);
              scanf("%f",&X[i][j]);
			}
   
   
		  }
	   }
 }

//****算法过程**** 
 
 zx=zx_l=X[0][0];//初始化聚类中心
 zy=zy_l=X[0][1];
 

 //开始迭代 
 again:           //算出数据点分类 

 SS=0;

 for(i=0;i<n;i++)
 {
  
   S[SS][0]=X[i][0];
   S[SS][1]=X[i][1];
   SS++;
 }

//计算聚类中心 

 zx=0;
 zy=0;
 for(i=0;i<SS;i++)
 {
  zx=(S[i][0]+zx);
  zy=(S[i][1]+zy);
 }
 zx=zx/SS;
 zy=zy/SS;
 

//判断聚类中心 

 if((zx!=zx_l)||(zy!=zy_l))
 {
  zx_l=zx;
  zy_l=zy;
  
  goto again;    //判断迭代得出的聚类中心的值是否与上次相同,不同则继续迭代
 }
  
//打印结果 

 printf("结果:\n");
 printf("%f,%f\n ",zx,zy);


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -