//1.计算n的阶乘:
int fcr(int a)
{
if (a >1) //当a=1的时候,fcr(1)=1;
return a * fcr(a - 1);
else
return 1;
}
//2.四舍五入函数
int rdoff(float A)
{
int a;
if (A >= 0)
{
a = A;
float C = A - a; //得到小数
if (C >= 0.5)
A = A + 1;
else
A = a;
}
else
{
a = A;
int b = -a;
A = -A;
float C = A - b; //得到小数
if (C >= 0.5)
{
A = A + 1;
A = -A;
}
else
A = a;
}
return A;
}
//3.逆整函数
int reverse(int n)
{
int revenum=0;
for (int i = 1; n > 0; i++)
{
int temp = n % 10;//得到最后一位
n = n / 10;
revenum = temp + revenum * 10;
}
return revenum;
}
//4.判断素数函数:返回1为素数,0不是素数
int is_prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
{
if (n % i == 0)
break;
}
if (n % i != 0)
return 1;
else
return 0;
}
//5.计算三角形面积:返回-1不能构成三角形,其余正常
double tri_area(double a, double b, double c)
{
double s=0, area=0;
if (a > 0 && b > 0 && c > 0) {
if (a + b > c && a + c > b && b + c > a) {
s = (a + b + c) / 2.0;
area = sqrt(s * (s - a) * (s - b) * (s - c));//括号之间不能没有运算的符号
//printf("area=%lf\n", area);
return area;
}
else {
//printf("Cannot form a triangle\n ");
return -1;
}
}
}
//6.求根函数(二次):通过指针来返回(保存)两个根,其中x1,x2为输出参数,主函数使用时需要先定义,因为要传入指针
int root_2(int a, int b, int c, double* x1, double* x2)
{
double DET = b * b - 4 * a * c;
if (DET > 0)
{
*x1 =(-b + DET) / 2 * a;//内部解引用
*x2 = (-b - DET) / 2 * a;
return 2;
}
else if (DET == 0)
{
*x1 = (-b + DET) / 2 * a;
*x2 = *x1;
return 1;
}
else
{
*x1 = 0;//当返回值都是两个0的时候,说明无根
*x2 = 0;
return 0;
}
}
以上都是一些比较常用到的函数,使用起来方便快捷,具体注意都写在注释中了,事半功倍.如果有疑问可以发表在评论区.