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。
下面是定义好的类及测试函数。很遗憾,begin到end部分存在两处语法错误,请你找出并修改过来,提交begin到end部分的代码。
//************* 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分量值,G、B分量用默认值
第2行,只输入c2对象的R、G分量值,B分量用默认值
第3行,只输入c3对象的R、G、B三个分量的值
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<
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮