C++博客 :: 首页 :: 新随笔 ::  ::  :: 管理

pku1046

Posted on 2010-08-14 01:38 Kevin_Zhang 阅读(181) 评论(0)  编辑 收藏 引用 所属分类: 搜索数学
/*
循环处理
1)定义数组long int dis[17],无需开方,直接记录平方和;分别计算绘制色与标准色的空间距离,保存到该数组中;
2)从dis数组找到最小值的下标,即得到最近的标准色的下标。
3)输出结果。

数据结构:结构体加数组。

*/

#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;

}



只有注册用户登录后才能发表评论。
相关文章:
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理