如果已知英制长度的英尺 foot 和英寸 inch 的值, 那么对应的米是 (. 现在, 如果用户输入的是厘米数, 那么对应英制长度的英尺和英寸是多少呢? 别忘了 1 英尺等于 12 英寸.
输入格式:
输入在一行中给出 1 个正整数, 单位是厘米.
输出格式:
在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值, 中间用空格分开.
输入样例:
170
输出样例:
- 5 6
- #include
- int main(){
- int cm = 0;
- int foot,inch;
- scanf("%d",&cm);
- foot = cm/30.48;
- inch = (cm/30.48-foot)*12;
- printf("%d %d",foot,inch);
- return 0;
- }
7-2 然后是几点 (15 分)
有时候人们用四位数字表示一个时间, 比如 1106 表示 11 点零 6 分. 现在, 你的程序要根据起始时间和流逝的时间计算出终止时间.
读入两个数字, 第一个数字以这样的四位数字表示当前时间, 第二个数字表示分钟数, 计算当前时间经过那么多分钟后是几点, 结果也表示为四位数字. 当小时为个位数时, 没有前导的零, 即 5 点 30 分表示为 530. 注意, 第二个数字表示的分钟数可能超过 60, 也可能是负数.
输入格式:
输入在一行中给出 2 个整数, 分别是四位数字表示的起始时间, 以及流逝的分钟数, 其间以空格分隔. 注意: 在起始时间中, 当小时为个位数时, 没有前导的零, 即 5 点 30 分表示为 530; 流逝的分钟数可能超过 60, 也可能是负数.
输出格式:
输出四位数字表示的终止时间, 当小时为个位数时, 没有前导的零. 题目保证起始时间和终止时间在同一天内.
输入样例:
1120 110
输出样例:
- 1310
- #include
- int main(){
- int time = 0;
- int past = 0;
- scanf("%d%d",&time,&past);
- int hour = time / 100;
- int minute = time % 100;
- if(past>0){
- int finalHour = (minute+past) / 60;
- int overMin = (minute+past) % 60;
- printf("%02d%02d\n",hour+finalHour,overMin);
- }
- else{
- hour = hour - (-past) / 60 - 1;
- int overMin = (60- (-past)%60+minute)%60;
- hour = hour + (60 - (-past)%60+minute)/60;
- printf("%d%02d\n",hour,overMin);
- }
- return 0;
- }
这道题很绕, 特别是处理负数时间的时候, 调试了半天.
7-3 逆序的三位数 (10 分)
程序每次读入一个正 3 位数, 然后输出按位逆序的数字. 注意: 当输入的数字含有结尾的 0 时, 输出不应带有前导的 0. 比如输入 700, 输出应该是 7.
输入格式:
每个测试是一个 3 位的正整数.
输出格式:
输出按位逆序的数.
输入样例:
123
输出样例:
- 321
- #include
- int main(){
- int num;
- scanf("%d",&num);
- int bai = num /100;
- int shi = num /10 %10;
- int ge;
- if(shi <= 0 ){
- ge = num % 100;
- }
- else{
- ge = num %100 % 10;
- }
- if(ge==0&&shi==0){
- printf("%d",bai);
- }
- else if(ge==0&&shi!=0){
- printf("%d%d",shi,bai);
- }
- else if(ge!=0&&shi==0){
- printf("%d%d%d",ge,shi,bai);
- }
- else{
- printf("%d%d%d",ge,shi,bai);
- }
- return 0;
- }
这道题相对简单, 注意 0 的处理即可.
7-4 BCD 解密 (10 分)
BCD 数是用一个字节来表达两位十进制的数, 每四个比特表示一位. 所以如果一个 BCD 数的十六进制是 0x12, 它表达的就是十进制的 12. 但是小明没学过 BCD, 把所有的 BCD 数都当作二进制数转换成十进制输出了. 于是 BCD 的 0x12 被输出成了十进制的 18 了!
现在, 你的程序要读入这个错误的十进制数, 然后输出正确的十进制数. 提示: 你可以把 18 转换回 0x12, 然后再转换回 12.
输入格式:
输入在一行中给出一个 [0, 153] 范围内的正整数, 保证能转换回有效的 BCD 数, 也就是说这个整数转换成十六进制时不会出现 A-F 的数字.
输出格式:
输出对应的十进制数.
输入样例:
18
输出样例:
- 12
- #include
- int main(){
- int num;
- scanf("%d",&num);
- int n, a;
- a = num%16;
- n = num/16*10+a;
- printf("%d",n);
- return 0;
- }
重点是他的提示...
来源: http://www.bubuko.com/infodetail-3303354.html