当前位置:我的异常网» VC/MFC » 练习c语言时 ,总是出现error C2731: 'main' : func
练习c语言时 ,总是出现error C2731: 'main' : function cannot be overloaded,该怎么解决
www.myexceptions.net 网友分享于:2013-05-04 浏览:257次
练习c语言时 ,总是出现error C2731: 'main' : function cannot be overloaded
#include
#include
#include
#include
#define TRUE 1
#define FALSE 0
int N;//数据个数
int K;//集合个数
int * CenterIndex;//初始化质心数组的索引
double * Center;//质心集合
double * CenterCopy;//质心集合副本
double * AllData;//数据集合
double ** Cluster;//簇的集合
int * Top;//集合中元素的个数,也会用作栈处理
//随机生成k个数x(0<=x<=n-1)作为起始的质心集合
void CreateRandomArray(int n, int k,int * center)
{
int i=0;
int j=0;
srand( (unsigned)time( NULL ) );
for( i=0;i
{
int a=rand()%n;
//判重
for(j=0;j
{
if(center[j]==a)//重复
{
break;
}
}
if(j>=i)//如果不重复,加入
{
center[i]=a;
}
else
{
i--;
//如果重复,本次重新随机生成
}
}
}
//返回距离最小的质心的序号
int GetIndex(double value,double * center)
{
int i=0;
int index=i;//最小的质心序号
double min=fabs(value-center[i]);//距质心最小距离
for(i=0;i
{
if(fabs(value-center[i])
{
index=i;
min=fabs(value-center[i]);
}
}
return index;
}
//拷贝质心数组到副本
void CopyCenter()
{
int i=0;
for(i=0;i
{
CenterCopy[i]=Center[i];
}
}
//初始化质心,随机生成法
void InitCenter()
{
int i=0;
CreateRandomArray(N,K,CenterIndex);//产生随机的K个
for(i=0;i
{
Center[i]=AllData[CenterIndex[i]];//将对应数据赋值给质心数组
}
CopyCenter();//拷贝到质心副本
}
//加入一个数据到一个Cluster[index]集合
void AddToCluster(int index,double value)
{
Cluster[index][Top[index]++]=value;//这里同进栈操作
}
//重新计算簇集合
void UpdateCluster()
{
int i=0;
int tindex;
//将所有的集合清空,即将TOP置0
for(i=0;i
{
Top[i]=0;
}
for(i=0;i
{
tindex=GetIndex(AllData[i],Center);//得到与当前数据最小的质心索引
AddToCluster(tindex,AllData[i]); //加入到相应的集合中
}
}
//重新计算质心集合,对每一簇集合中的元素加总求平均即可
void UpdateCenter()
{
int i=0;
int j=0;
double sum=0;
for(i=0;i
{
sum=0;
//计算簇i的元素和
for(j=0;j
{
sum+=Cluster[i][j];
}
if(Top[i]>0)//如果该簇元素不为空
{
Center[i]=sum/Top[i];//求其平均值
}
}
}
//判断2数组元素是否相等
int IsEqual(double * center1 ,double * center2)
{
int i;
for(i=0;i
{
if(fabs(center1[i]!=center2[i]))
{
return FALSE;
}
}
return TRUE;
}
//打印聚合结果
void Print()
{
int i,j;
printf("-------------------------------------- ");
for(i=0;i
{
printf("第%d组: 质心(%f) ",i,Center[i]);
文章评论