• YTU 2629: E1 一种颜色,三个分量


    2629: E1 一种颜色,三个分量

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 300  解决: 226

    题目描述

    在计算机中,常用三种基色红(R)、绿(G)、蓝(B)的混合来表示颜色,这三种基色也称为颜色的三个分量。在实现中每种分量的取值范围为0-255,用一个字节表示。这样,一种颜色需要用三个字节存储。
    一种颜色,也可以用一个整型数(称为颜色值)来表示,颜色值与三基色有对应关系,即:颜色值 = R × 0x10000 + G × 0x100 + B。
    现定义了一个颜色类Color,指定三种基色的值,可以将其转换为一个整型值输出。在指定三基色时,若省略其值,默认为该分量值为0。
    下面是定义好的类及测试函数。很遗憾,begin到end部分存在两处语法错误,请你找出并修改过来,提交begin到end部分的代码。
    //************* begin *****************
    #include <iostream>
    using namespace std;
    class Color
    {
    public:
        Color(int r=0,int g=0,int b=0);  //构造函数
        int getValue( );                 //求得颜色值
    private:
        unsigned char red;   //用无符号char,表示数的范围是0-255,三基色占用3字节
        unsigned char green;
        unsigned char blue;
    };  
    Color::Color(int r=0,int g=0,int b=0): red(r),green(g),blue(b) { }  //(1)
    int getValue( )  //(2)
    {
        return(red*0x10000+green*0x100+blue);
    }
    //************* end *****************
    int main( )
    {
        int r, g, b;
        cin>>r;
        Color c1(r);
        cout<<c1.getValue()<<endl;
        cin>>r>>g;
        Color c2(r,g);
        cout<<c2.getValue()<<endl;
        cin>>r>>g>>b;
        Color c3(r);
        cout<<c3.getValue()<<endl;
        return 0;
    }

    输入

    共输入3行,分别代表初始化3个颜色对象的分量值
    第1行,只输入c1对象的R分量值,G、B分量用默认值
    第2行,只输入c2对象的R、G分量值,B分量用默认值
    第3行,只输入c3对象的R、G、B三个分量的值

    输出

    共3行,分别代表3种颜色的颜色值

    样例输入

    84
    128 58
    32 225 48

    样例输出

    5505024
    8403456
    2097152

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include <iostream>
    using namespace std;
    class Color
    {
    public:
        Color(int r=0,int g=0,int b=0);  //构造函数
        int getValue( );                 //求得颜色值
        unsigned char red;   //用无符号char,表示数的范围是0-255,三基色占用3字节
        unsigned char green;
        unsigned char blue;
    };
    Color::Color(int r,int g,int b): red(r),green(g),blue(b) { }  //(1)
    int Color::getValue( )
    {
        return(red*0x10000+green*0x100+blue);
    }
    int main( )
    {
        int r, g, b;
        cin>>r;
        Color c1(r);
        cout<<c1.getValue()<<endl;
        cin>>r>>g;
        Color c2(r,g);
        cout<<c2.getValue()<<endl;
        cin>>r>>g>>b;
        Color c3(r);
        cout<<c3.getValue()<<endl;
        return 0;
    }

  • 相关阅读:
    C# 实现 Aop [Emit动态生成代理类方式]
    分享一些最近在看的电子书
    Can't connect to your phone. Disconnect it, restart it, then try connecting again
    07,Windows Phone后台代理
    .NET 性能测试工具 性能计数器
    windows 8 metro 开发学习资源链接
    08,Windows Phone 本地存储
    06,Windows Phone 8程序的生命周期
    .NET 性能测试工具 事件跟踪器(ETW)
    LitJSONjson 和net 的完美组合用法
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989515.html
Copyright © 2020-2023  润新知