问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

解释C语言程序,详细说明每一步作用

发布网友 发布时间:2022-04-22 00:54

我来回答

2个回答

热心网友 时间:2023-07-03 03:01

#include "stdio.h"
#include "math.h"

int x[20][3] = {{ 3, 1, 0},
{ 1, 4, 0},
{ 2, 5, 0},
{ 2, 2, 0},
{ 3, 3, 0},
{110, 98, 0},
{100,100, 0},
{ 96,112, 0},
{ 99, 99, 0},
{105,110, 0},
{ 6,101, 0},
{ 1, 94, 0},
{ 7, 95, 0},
{ 2,102, 0},
{ 114, 93, 0},
{101, 1, 0},
{ 99, 4, 0},
{ 98, 7, 0},
{ 95, 15, 0},
{103, 113, 0}};

float distance(int a,int b) //距离函数,求两个点之间的距离,只计算前两维。
{
float d;

d=sqrt((x[b][0]-x[a][0])*(x[b][0]-x[a][0])+(x[b][1]-x[a][1])*(x[b][1]-x[a][1]));
return d;
}

void main()
{
//这个程序是把类的编号放在坐标的第三维,因为坐标的第三维均为0没有用,所以正好利用起来。
//对类的编号从1开始编号,如果类的编号为i(i=1,2,3...),则类中心点的坐标第3维对应存储的数据为20+i。
//对非类中心点的点,其存储的是对应所属类的编号。
//因此,最后打印的时候,根据第3维的数据是否大于20可以判断是否是类的中心点。

int i,j,m,n=1;
float d,min;
printf("Please input d:"); //输入半径d
scanf("%f",&d);
printf("\n");
x[0][2]=20+n++; // 最后一位[2]作为标志位,大于20为class!
for(i=1;i<20;i++)
{
min=d;m=i;
for(j=0;j<i;j++)
if(x[j][2]>20 && min>distance(j,i)) //x[j][2]>20表明x[j]为class的中心,min>distance(j,i)表明i和j的距离比原先的距离还要小。
//此句的目的是把i这个点与原先已经计算出来的class中心分别计算距离,并保存距离的最小值到变量min中,其对应class中心点编号放到m中
{
min=distance(j,i);m=j;
}
if(min==d) //如果此式成立,表明最小距离都比d要大,因此开辟出一个新类。
x[i][2]=20+n++;
else
x[i][2]=x[m][2]-20; //归入已存在类。
}
for(i=0;i<20;i++) //打印所有的类及类的中心点
if(x[i][2]>20)
printf("Cluster center%2d = X[%2d][] = {%3d,%3d,0}\n",x[i][2]-20,i,x[i][0],x[i][1]);
printf("\n");
for(i=0;i<20;i++) //打印所有的非类中心点的点所属的类及这些点的坐标。
if(x[i][2]<20)
printf("X[%2d][] = {%3d,%3d,0} = Cluster %2d \n",i,x[i][0],x[i][1],x[i][2]);
}

热心网友 时间:2023-07-03 03:01

这题目也问?

认真看看
对基础帮助很大的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
amd锐龙r75700g超频性价比装机方案,要核显性能综合表现超 架空电线故障如何排除 ...unexpected T_CONSTANT_ENCAPSED_STRING in 怎么解决这个错啊_百度... php错误Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_S... PHP出现如下情况 syntax error, unexpected T_ENCAPSED_AND_WHITES... php 如何捕获类似于Parse error: syntax error, unexpected T_CONSTA... 挂烫机如何熨西装 戗驳领西装怎么熨烫 西装前片怎么推拉拔烫 西装能不能拿去烫 oppo手机连不上wifi,但其他手机能连上,重启后还... oppo手机连上wifi为什么用不了 oppo手机连上wifi却不能上网 OPPO手机连接上了WiFi,但是缺不可上网怎么办? oppo手机wifi连上但上不了网 OPPO手机连上了wifi上不了网怎么办? oppo手机wifi已连接不可上网 oppo手机连上wifi却上不了网怎么办 skullcandy crusher耳机怎么换电池啊。。。 无线耳机电池能换吗 蓝牙耳机可以换电池吗 蓝牙耳机耳机可以换电池吗? 我的运动耳机带机不好,怎么换电池呢 小米蓝牙耳机air2更换电池 QCYQ13蓝牙耳机如何更换内置电池? jabra蓝牙耳机电池如何更换? 如何更换蓝牙耳机电池 怎样给头戴式耳机换电池 蓝牙耳机电池怎么更换 耳麦怎么换电池 C语言程序开头对程序的说明怎么写 OPPO手机连不上wifi怎么办? oppo手机连不上wifi是怎么回事? c语言程序说明 OPPO手机怎么会突然连不上WIFI C语言程序解释 oppo手机连接上了wifi怎么看密码 c语言程序描述 C语言 程序解释 C语言介绍 c语言,详细说明流程图过程 写出单片机LED闪烁的C语言控制程序,并说明程序的... c语言中函数怎么说明? 一个c语言程序通常包括一下哪些内容(多选)? linux中C语言程序 代码说明注释 三星s8 自动关机后 充不上电 插充电器没反应 指示灯都不亮 开不了机 苹果手机怎么设置语音电话通知 电话的语音提示都有哪些? 拔打电话语音提示你拔打电话正忙,来电信息以短信通... 请问怎样设置打别人电话时,是语音提醒,用短信通...