7-4 BCD解密 (10 分)
BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!
现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。
输入格式:
输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。
输出格式:
输出对应的十进制数。
#include<iostream>
using namespace std;
int main(){
int num1;
cin>>num1;
int b=num1%16;
int a=num1/16;
if(a!=0){cout<<a<<b;}
else{cout<<b;}
}
7-5 表格输出 (5 分)
本题要求编写程序,按照规定格式输出表格。
输入格式:
本题目没有输入。
输出格式:
要求严格按照给出的格式输出下列表格:
------------------------------------
Province Area(km2) Pop.(10K)
------------------------------------
Anhui 139600.00 6461.00
Beijing 16410.54 1180.70
Chongqing 82400.00 3144.23
Shanghai 6340.50 1360.26
Zhejiang 101800.00 4894.00
------------------------------------
#include<iostream>
using namespace std;
int main(){
for(int i=0;i<36;i++){cout<<'-';}
cout<<endl<<"Province Area(km2) Pop.(10K)"<<endl;
for(int j=0;j<36;j++){cout<<'-';}
cout<<endl<<"Anhui 139600.00 6461.00"<<endl;
cout<<"Beijing 16410.54 1180.70"<<endl;
cout<<"Chongqing 82400.00 3144.23"<<endl;
cout<<"Shanghai 6340.50 1360.26"<<endl;
cout<<"Zhejiang 101800.00 4894.00"<<endl;
for(int k=0;k<36;k++){cout<<'-';}
7-6 混合类型数据格式化输入 (5 分)
本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。
输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。
输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int main(){
float a,d;
int b;
string c;
cout<<fixed<<setprecision(2);
cin>>a>>b>>c>>d;
cout<<c<<" "<<b<<" "<<a<<" "<<d;}