第十一课:分离各位数|分离整数和小数部分|如何买玫瑰|玩数字|坐标转换

这篇博客探讨了数学运算中分离整数和小数部分的技巧,包括使用/和%操作符来分离个十百位。强调了强制类型转换的优先级和自动转换规则,并提醒读者注意scanf的使用。此外,通过解决“如何买玫瑰”的问题,介绍了贪心算法的应用。还提到了在数字游戏中规范变量命名和使用sqrt()函数时的注意事项,最后讨论了坐标转换中使用弧度的重要性,并建议在调试时习惯使用宏定义的Pi。

分离各位数

#include "stdio.h"
int main()
{
	int a,b,c,d;//a为百位,b为十位,c为个位
	printf("请输入一个三位数\n");
	scanf("%d",&d);
	a=d/100;
	b=(d/10)%10;
	c=d%10;
	printf("百位=%d,十位=%d,个位=%d\n",a,b,c);
	return 0;
}
运行结果


知识点 /,%的使用分离个十百位。

心得 可以适当记得分离个十百位的方法。


分离整数和小数部分

#include "stdio.h"
int main()
{
	float a;
	int b,c;
	printf("please input\n");
	scanf("%f",&a);
        c=a;//自动转换应该置于scanf之后,因为有了确定值才好自动转换。
	b=(int)(a*1000)%1000;//()强制转换优先级2,自右而左结合。
	printf("%d,%d\n",c,b);
	//printf("%d\n",b);
	return 0;

}

运行结果



知识点 强制转换的使用、优先级,不同类型的变量运算自动转换。

心得 建议记得不同类型变量运算互相转换的那张表,自动转换是scanf应该先在此之前,输入变量值。输入小数的方法没想到。


如何买玫瑰?

#include "stdio.h"
int main()
{
	int n,m,z1,z2;//n为钱数,m原本可以买的枝数,z1为买5送1,z2为买20送5。
	printf("please input money\n");
	scanf("%d",&n);
	m=n/5;
	z2=m/20*5;
	z1=(m-(m/20)*20)/5;//枝数不够20赠5的,买5赠1
	printf("m=%d\n",m+z1+z2);//总是会把%d丢了
	return 0;
}
运行结果


知识点 算术运算符/可以自动省略小数点的。

心得 之前把这题算法想错了,以为是多分支结构的。没想到是贪心算法,先尽可能享受买20赠5的优惠,再看享受买5赠1的优惠。这是贪心法的思维。对于z1,z2的表示要理解一下。

玩数字

#include "stdio.h"
#include "math.h"
int main()
{
	float a,b,c,d,sum,avg,sq_sum;//d为平方和开根
	printf("please input three numbers\n");
	scanf("%f,%f,%f",&a,&b,&c);
	sum=a+b+c;
	sq_sum=a*a+b*b+c*c;
	avg=sum/3;
	d=sqrt(sq_sum);//sqrt 要加头文件
	printf("sum=%f\nsq_sum=%f\navg=%f\nd=%f\n",sum,sq_sum,avg,d);
	return 0;
}

运行结果


知识点 变量命名要规范,调用sqrt()函数要加头文件#include "math.h"

心得 记得加头文件。


坐标转换

#include "stdio.h"
#include "math.h"
#define PI 3.1415926
int main()
{
	float r,theta;
	float x,y;
	scanf("%f,%f",&r,&theta);
	x=r*cos(theta/180*PI);//cos要用弧度作为参数。
	y=r*sin(theta/180*PI);
	printf("%f,%f\n",x,y);
	return 0;
}


运行结果


知识点 cos要用弧度作为参数。


心得 调试程序的时候,弧度表示为theta/180*PI,要习惯宏定义 Pi。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值