OJ期末模考C

2019-04-14 16:27发布

Problem C: E1 一种颜 {MOD},三个分量 Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 287  Solved: 213
[Submit][Status][Web Board]
Description 在计算机中,常用三种基 {MOD}红(R)、绿(G)、蓝(B)的混合来表示颜 {MOD},这三种基 {MOD}也称为颜 {MOD}的三个分量。在实现中每种分量的取值范围为0-255,用一个字节表示。这样,一种颜 {MOD}需要用三个字节存储。 一种颜 {MOD},也可以用一个整型数(称为颜 {MOD}值)来表示,颜 {MOD}值与三基 {MOD}有对应关系,即:颜 {MOD}值 = R × 0x10000 + G × 0x100 + B 现定义了一个颜 {MOD}类Color,指定三种基 {MOD}的值,可以将其转换为一个整型值输出。在指定三基 {MOD}时,若省略其值,默认为该分量值为0 下面是定义好的类及测试函数。很遗憾,beginend部分存在两处语法错误,请你找出并修改过来,提交beginend部分的代码。 //************* begin ***************** #include using namespace std; class Color { public:     Color(int r=0,int g=0,int b=0);  //构造函数     int getValue( );                 //求得颜 {MOD}值 private:     unsigned char red;   //用无符号char,表示数的范围是0-255,三基 {MOD}占用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<     cin>>r>>g;     Color c2(r,g);     cout<     cin>>r>>g>>b;     Color c3(r);     cout<     return 0; } Input 共输入3行,分别代表初始化3个颜 {MOD}对象的分量值 1行,只输入c1对象的R分量值,GB分量用默认值 2行,只输入c2对象的RG分量值,B分量用默认值 3行,只输入c3对象的RGB三个分量的值 Output 3行,分别代表3种颜 {MOD}的颜 {MOD}值 Sample Input 84 128 58 32 225 48 Sample Output 5505024 8403456 2097152     Submit: //************* begin ***************** #include using namespace std; class Color { public: Color(int r=0,int g=0,int b=0); //构造函数 int getValue( ); //求得颜 {MOD}值 private: unsigned char red; //用无符号char,表示数的范围是0-255,三基 {MOD}占用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( ) //(2) { return(red*0x10000+green*0x100+blue); } //************* end ***************** int main( ) { int r, g, b; cin>>r; Color c1(r); cout<>r>>g; Color c2(r,g); cout<>r>>g>>b; Color c3(r); cout<