翁恺c语言题集(第二周)

记录一下自己做的答案,如有侵权请联系我。

2.1 整数四则运算

本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。

#include <stdio.h>
int main()
{
	int x, y;
	int add, sub, mul, div;//加减乘除
	scanf_s("%d%d", &x, &y);
	add = x + y;
	sub = x - y;
	mul = x * y;
	div = x / y;
	printf("%d+%d=%d\n", x, y, add);
	printf("%d-%d=%d\n", x, y, sub);
	printf("%d*%d=%d\n", x, y, mul);
	printf("%d/%d=%d\n", x, y, div);
	return 0;
}

 

2.2 厘米换算英尺英寸

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)*30.48。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

#include<stdio.h>
int main()
{
	int cm,foot, inch;
	scanf_s("%d",&cm);
	foot = cm / 30.48;
	inch = ((cm/30.48) - foot) * 12;//先运算再强制类型转换
	printf("%dcm is %dfoot and %dinch",cm, foot, inch);
	return 0;
}

 

2.3 然后是几点

有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。

#include<stdio.h>
int main()
{
	int hour, minute, time1, time2, x=0;
	scanf_s("%d", &time1);
	hour = time1 / 100;
	minute = time1 % 100;
	printf("现在的时间是%d时%d分\n", hour, minute);
	scanf_s("%d", &x);
	printf("经过%d分钟后\n", x);
	time1 = hour * 60 + minute;
	time2 = time1 + x;
	hour = time2 / 60;
	minute = time2 % 60;
	printf("现在的时间为%d时%d分\n", hour, minute);
	time2 = hour * 100 + minute;
	printf("表示为%d\n",time2);
	return 0;
}

 

2.4 逆序的三位数

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

#include<stdio.h>
int main()
{
	int a, b, c, x;
	scanf_s("%d", &x);
	printf("输入整数%d\n", x);
	a = x / 100;
	b = (x % 100) / 10;
	c = x % 10;
	x = c * 100 + b * 10 + a;
	printf("逆序之后输出为%d\n", x);
	return 0;
}

2.5 BCD解密

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

#include<stdio.h>
int main()
{
	int x, y;
	scanf_s("%d", &x);
	printf("输入十进制数%d\n", x);
	y = (x / 16) * 10 + x % 16;
	printf("其十六进制表示为%d\n", y);
	return 0;
}

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值