题目大意:
先给出16个颜色形式(R,G,B),接下来每给出一种颜色,就找出这16中颜色中最接近的颜色。公式是
解题思路:
每输入一种颜色,遍历就可以了
代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
int a[16][3],b[3],i,j,n=0;
float min,D;
for(i=0;i<16;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
scanf("%d",&b[i]);
}
while((b[0]!=-1)&&(b[1]!=-1)&&(b[2]!=-1))
{
min=sqrt((b[0]-a[0][0])*(b[0]-a[0][0])+(b[1]-a[0][1])*(b[1]-a[0][1])+(b[2]-a[0][2])*(b[2]-a[0][2]));
for(i=1;i<16;i++)
{
D=sqrt((b[0]-a[i][0])*(b[0]-a[i][0])+(b[1]-a[i][1])*(b[1]-a[i][1])+(b[2]-a[i][2])*(b[2]-a[i][2]));
if(D<min)
{
min=D;
n=i;
}
}
printf("(%d,%d,%d) maps to (%d,%d,%d)\n",b[0],b[1],b[2],a[n][0],a[n][1],a[n][2]);
for(i=0;i<3;i++)
{
scanf("%d",&b[i]);
}
n=0;
}
return 0;
}