E1 一种颜色,三个分量

2020年1月17日 971点热度 0人点赞 0条评论

E1 一种颜色,三个分量

时间: 1ms        内存:128M

描述:

在计算机中,常用三种基色红(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

提示:

参考答案:

解锁文章

没有看到答案?微信扫描二维码可免费解锁文章

微信扫描二维码解锁

使用微信扫描二维码打开广告页面后可以立即关闭,再刷新此页面即可正常浏览此文章

所跳转广告均由第三方提供,并不代表本站观点!

已经扫描此二维码?点此立即跳转

code

这个人很懒,什么都没留下

文章评论