Posted on 2010-08-14 01:38
Kevin_Zhang 閱讀(205)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
搜索 、
數(shù)學(xué)

/**//*
循環(huán)處理
1)定義數(shù)組long int dis[17],無(wú)需開(kāi)方,直接記錄平方和;分別計(jì)算繪制色與標(biāo)準(zhǔn)色的空間距離,保存到該數(shù)組中;
2)從dis數(shù)組找到最小值的下標(biāo),即得到最近的標(biāo)準(zhǔn)色的下標(biāo)。
3)輸出結(jié)果。

數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體加數(shù)組。

*/
#include"iostream"
#include"stdio.h"
#include"climits "
using namespace std;

typedef struct rgb


{
int r;
int g;
int b;
}rgb;
rgb srgb[17],argb;

int dis[17],temp;

int result;

int main()


{
int i;
for(i=0;i<16;i++)

{scanf("%d%d%d",&srgb[i].r,&srgb[i].g,&srgb[i].b);}
scanf("%d%d%d",&argb.r,&argb.g,&argb.b);
while(argb.b>-1)

{
for(i=0;i<16;i++)

{
dis[i]=(argb.r-srgb[i].r)*(argb.r-srgb[i].r)+(argb.g-srgb[i].g)*(argb.g-srgb[i].g)+(argb.b-srgb[i].b)*(argb.b-srgb[i].b);
}
temp=INT_MAX;
result=-1;
for(i=0;i<16;i++)

{
if(dis[i]<temp)

{temp=dis[i];
result=i;
}

}
printf("(%d,%d,%d) maps to (%d,%d,%d)\n",argb.r,argb.g,argb.b,srgb[result].r,srgb[result].g,srgb[result].b);
scanf("%d%d%d",&argb.r,&argb.g,&argb.b);
}
return 0;

}

