2019-11-29
1046 梳理好思路再开始写 注意逻辑问题 调用函数:遍历一遍找最小的。方法有很多种,想出最顺的?
#include <stdio.h>
#include <stdlib.h>
int find_min(int map[16][3],int r,int g,int b)
{
int dis[16],min_index=0,min=255*255*255,i;
for(i=0;i<16;i++)
{
dis[i]=(r-map[i][0])*(r-map[i][0])+(g-map[i][1])*(g-map[i][1])+(b-map[i][2])*(b-map[i][2]);
}
for(i=0;i<16;i++)
{
if(dis[i]<min)
{
min_index=i;
min=dis[i];
}
}
return min_index;
}
int main()
{
int map[16][3];
int index,i,r,g,b;
for(i=0;i<16;i++)
{
scanf("%d %d %d",&map[i][0],&map[i][1],&map[i][2]);
}
scanf("%d %d %d",&r,&g,&b);
while(r>=0)
{
index=find_min(map,r,g,b);
printf("(%d,%d,%d) maps to (%d,%d,%d)\n",r,g,b,map[index][0],map[index][1],map[index][2]);
scanf("%d %d %d",&r,&g,&b);
}
return 0;
}
原文:https://www.cnblogs.com/calm-blogme/p/11967005.html