1.利用%符号获取特定位数的数字。
2.强制类型转换 (将float转换为int )
3.计算有关浮点型数据时,要注意你计算过程中所有的数据都是浮点型
4.0/3.0 != 4/3
4.通过位操作符实现输出2的倍数(对于位操作符不熟悉的小伙伴可以看看我之前的博客)
1.
#include <stdio.h> #include <stdio.h> 要求;1. 只取数字后两位 2.计算结果也只取后两位 菜鸟(我)的写法 int main() { 先定义两个数字 int a, b; scanf("%d %d", &a, &b); int i; 定义两个新的变量,存储后两位; int a1, b1; a1 = a % 10 + a / 10 % 10 * 10;//第一个运算是得到a的个位数字,第二个运算是得到a的十位数字 b1 = b % 10 + b / 10 % 10 * 10; 定义一个变量sum,存放a+b的和 int sum = a1 + b1; sum = sum % 10 + sum / 10 % 10 * 10; printf("%d", sum); return 0; } 更加简单的写法 想得到一个数字的十位和个位吗,%100,得到的余数就是十位和个位 int main() { int a, b; scanf("%d %d", &a, &b); int sum = a + b; printf("%d", sum % 100); return 0; }
2.强制类型转化
题目来源:
//给定一个浮点数,要求得到该浮点数的个位数。 int main() { float a; scanf("%f", &a); int a1 = (int)a; //知识点:强制类型转换 printf("%d", a1 % 10); return 0; }
知识点:
1.float/double 转化为Int类型
float a=1.2,double b=2.22;
int a1 =(int)a,int b1=(int)b;
2.int ->float int有取值范围,转化过程中太大的数可能无法转化
3.int/float->double double精度更高,所以不会发生舍入;
4.double->float 可能会发生舍入
3.
计算三角形的周长面积 //计算三角形的周长面积 int main() { //存放三条边 int a, b, c; scanf("%d %d %d", &a, &b, &c); float co = a + b + c; //用秦九韶公式求解面积 double p = (a + b + c) / 2.0;//注意这一点一定要除以2.0,因为你的p是小数,除以2,会得到一个整数 double s = sqrt(p * (p - a) * (p - b) * (p - c)); printf("circumference=%.2f area=%.2lf", co, s); return 0; } 给定一个球体的半径,计算其体积。其中球体体积公式为 V = 4/3*πr3,其中 π = 3.1415926。,保留三位小数 #define PI 3.1415926 int main() { //定义半径 float r; scanf("%f", &r); //计算体积 double v; v = (4.0/ 3.0) * PI * r * r * r;//一定要注意是4.0/3.0不是4/3,4/3会得到1,而不是我们想要的小数 printf("%.3lf", v); //在求解浮点型数据时,一定要注意所有的数据都必须为浮点型,否则会数据不正确 return 0; }
4.
实现2的n次方运算 纯计算 #include <math.h> int main() { int n; scanf("%d", &n); int k = pow(2, n); printf("%d", k); return 0; } 使用位操作符 <<左移操作符能够使数字变大 int main() { 定义初始值,为1 int o = 1; 定义要移的位数 int n; scanf("%d", &n); 计算 int r = o << n; printf("%d", r); return 0; }