下面 我们来说数据的运算
创建 C语言运算符如下
在C语言中,算术运算包括一元运算 (++ 和 --) 、+ (取正) 和 - (取负) 和 二元运算 ( + (加) -(减)*(乘) / (除) % (取余) ) 或 称模运算
这里 我们来看个小案例
输入两个整数,求两个数的 和、差、积、商, 要求商保留2位小数。
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
int a;
int b;
scanf("%d%d", &a, &b); /*输入两个整数分别赋给a和b*/
printf("%d\n", a + b);
printf("%d\n", a - b);
printf("%d\n", a * b);
printf("%.2f\n", (float)a / b); // 将其中一个操作数转换为浮点数,保留两位小数
return 0;
}
这里 我们两个数 输入 8和5 效果如下
然后 我们 不同类型数据之间的转换
我们在一些运算时 会出现不同类型数据之间的运算
这种情况 我们要将不同 类型的数据 进行类型转换 换成同一类型
转换方式分两种 强制转换与自动转换
(1)类型的自动转换
自动转换发生在不同类型的数据混合运算时,由编译系统自动完成。
它遵循一下几个规则
1 若参与运算的类型不同,则先转换成同一类型,然后进行运算。
2 转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时 ,先把int型转换成long型量,再进行运算。
3 所有的实型运算 都以双精度运行,即使仅含foat单精度运算的表达式,也要先转换成double型,再进行运算。
4 char型和short型参与运算时,必须先转换为int型量。
(2)类型的强制转换
强制类型转换是通过类型转换运算来实现的。
其功能是把表达式的运算结果强制转换成类型说明符所表达的类型
例如 我们这样写
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
double a = 2.5;
int n = (int)a;
printf("%f\n", a); // 使用 %f 打印 double 类型变量
printf("%d\n", n); // 打印 int 类型变量
return 0;
}
我们 定义 a 为 double 类型 值 2.5
然后 我们定义 n 类型为 int 等于 将 a的值转为 int 类型 然后赋值给 n
然后输出 a和n
运行结果如下
然后是 数学函数
首先 我们要用 需要在头部加上
#include <stdio.h>
然后 第一个数学函数 求绝对值 abs
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
int a = 3;
double j = abs(a);
printf("%f\n", j); // 使用 %f 打印 double 类型变量
return 0;
}
定义 j 接受 a的绝对值
求实数校对者 为 fabs
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
double a = -12.3, b;
b = fabs(a);
printf("%f\n", b); // 使用 %f 打印 double 类型变量
return 0;
}
求平方 sqrt
#define _CRT_SECURE_NO_WARNINGS//禁用安全函数警告
#pragma warning(disable:6031)//禁用 6031 的安全警告
#include <stdio.h>
int main() {
double a = 2.3, b;
b = sqrt(a);
printf("%f\n", b); // 使用 %f 打印 double 类型变量
return 0;
}
然后是 求幂xy pow
求自然对数 log