急求北大ACM 1046 题目的翻译(题意)及其答案(已经ac的)!

急求北大ACM1046题目的翻译(题意)及其答案(已经ac的)!... 急求北大ACM 1046 题目的翻译(题意)及其答案(已经ac的)! 展开
 我来答
a62517741
2008-10-31 · TA获得超过468个赞
知道小有建树答主
回答量:334
采纳率:100%
帮助的人:493万
展开全部
//大意是,先输入16组标准的点,(三维的坐标)。然后接下来一直输入坐标上的点,直到输入为 (-1,-1,-1)。每输入一个点,就输出16个点中与之距离最近的点的坐标。
#include<iostream>
#include<cmath>
using namespace std;

typedef struct value{
double R;
double G;
double B;
}V;

int main()
{
int i = 0;
int num=1;
V standard[16];
double result;
double temp;
for( i =0 ; i < 16 ; i++ )
{
cin >> standard[i].R >> standard[i].G >> standard[i].B;
}
V incolor;
while(cin >> incolor.R >> incolor.G >> incolor.B && incolor.R!=(-1))
{
num=0; i=0;
result = sqrt ( (standard[0].R-incolor.R)*(standard[0].R-incolor.R) +
(standard[0].G-incolor.G)*(standard[0].G-incolor.G) +
(standard[0].B-incolor.B)*(standard[0].B-incolor.B) ) ;
for( i = 1 ; i < 16 ; i++ )
{
temp = sqrt( (standard[i].R-incolor.R)*(standard[i].R-incolor.R) +
(standard[i].G-incolor.G)*(standard[i].G-incolor.G) +
(standard[i].B-incolor.B)*(standard[i].B-incolor.B) );
if(temp < result)
{
result = temp;
num = i;
}
}
cout << "(" << incolor.R <<","<< incolor.G <<","<< incolor.B<<")"
<<" maps to "<< "(" << standard[num].R <<","<< standard[num].G <<","<< standard[num].B<<")\n";
}

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式