分享c语言中一些实用的函数2

news2024/12/23 14:08:42

目录

一.头文件

1.sqrt()函数

2.sin,cos,tan函数

附加:宏定义π

3.exp函数

4.fabs函数

5.fmax函数

6.floor函数

7.log函数

附加:求一个数是几为数(运用floor函数和log函数)

8.pow函数

二.头文件

1.abs函数

附加:


一.头文件<math.h>

1.sqrt()函数

sqrt() 函数是 C 标准库中的数学函数,用于计算一个数字的平方根

原型:
double sqrt(double x);

返回值:返回一个数的平方根,返回值是 double 类型,即使输入的数整数

代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    double num = 25.0;
    double result;

    // 计算 num 的平方根
    result = sqrt(num);

    // 打印结果
    printf(" %.2f的平方根是%.2f\n", num, result);

    return 0;
}

结果如图:

2.sin,cos,tan函数

分别计算sin(),cos(),tan()弧度对应的三角函数值。

原型:
double sin(double x);
double cos(double x);
double tan(double x);

返回值:sincostan 函数计算弧度对应的三角函数值

代码示例:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

int main() {
    float angle = 45.0f;
    float radians = angle * M_PI / 180.0f;  // 将角度转换为弧度,M_PI是π

    float sin_value = sinf(radians);
    float cos_value = cosf(radians);
    float tan_value = tanf(radians);

    printf("sin(%.2f度) = %.4f\n", angle, sin_value);
    printf("cos(%.2f度) = %.4f\n", angle, cos_value);
    printf("tan(%.2f度) = %.4f\n", angle, tan_value);

    return 0;
}

结果如图:

附加:宏定义π

M_PI 是一个在某些编译器实现中定义的宏,表示数学常数 π(pi),大约为 3.14159265358979323846。它通常在 <math.h> 头文件中定义,但这不是 C 标准库的一部分,因此并非所有编译器都提供这个宏。

如果没有这个宏,则自己定义

#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

可以从上面的代码示例看到vs2022中并没有提供这个宏,所以在vs2022还是得自己定义来使用.

3.exp函数

exp 是用于计算自然指数函数 e的x次方 的标准库函数,定义在 <math.h> 头文件中。

原型:

double exp(double x);

返回值类型exp 函数返回 double 类型的结果

代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    double x = 1.0;
    double result = exp(x);

    printf("exp(%.2f) = %.4f\n", x, result);

    return 0;
}

结果:

注意:如果传递的是其他数值类型,编译器会进行隐式类型转换。(自然是都转换为double型的)

4.fabs函数

fabs 函数是 C 标准库中的一个函数,用于计算浮点数的绝对值。它定义在 <math.h> 头文件中。

原型:

double fabs(double x);

返回值类型fabs 函数返回 double 类型的结果。

代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    double num = -10.5;
    double abs_value = fabs(num);

    printf("%.2f的绝对值为%.2f\n", num, abs_value);

    return 0;
}

结果如图:

5.fmax函数

fmax 函数是 C 标准库中的一个函数,用于返回两个浮点数中的最大值。它定义在 <math.h> 头文件中。

原型:double fmax(double x, double y);

x,y分别为两个要比较的数.

返回值类型fmax 函数返回 double 类型的结果。

#include <stdio.h>
#include <math.h>

int main() {
    double num1 = 10.5;
    double num2 = 20.3;
    double max_value = fmax(num1, num2);

    printf(" %.2f 和 %.2f 之间最大的值为 %.2f\n", num1, num2, max_value);

    return 0;
}

结果如图:

6.floor函数

floor 是一个标准库函数,用于计算小于或等于给定数的最大整数。它是一个数学函数,通常在浮点运算中使用。

原型:double floor(double x);

返回值类型floor 函数返回 double 类型的结果。

代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    double num = 10.7;
    double floor_value = floor(num);

    printf("%.2f的floor值为%.2f\n", num, floor_value);

    num = -10.7;
    floor_value = floor(num);

    printf("%.2f的floor值为%.2f\n", num, floor_value);

    return 0;
}

结果如图:

7.log函数

log 函数是 C 标准库中的一个函数,用于计算自然对数(即以 e 为底的对数)。它定义在 <math.h> 头文件中。

原型:double log(double x);

返回值类型log 函数返回 double 类型的结果。

代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    double num = 10.0;
    double log_value = log(num);

    printf("%.2f的log值为%.4f\n", num, log_value);

    return 0;
}

结果如图:

当然我们也可以在log后面加上数字,如:log10(),log2()(也就是换底数,后面没加数字默认为e)

代码示例:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>

int main() {
    double num = 10.0;
    double num2 = 2.0;
    double log_value = log10(num);
    double log_value2 = log2(num2);

    printf("%.2f的log10值为%.4f\n", num, log_value);
    printf("%.2f的log2值为%.4f\n", num2, log_value2);

    return 0;
}

结果如图:

注意:log 函数的参数必须大于 0,因为对数函数在 0 及负数上未定义。

附加:求一个数是几为数(运用floor函数和log函数)

//求一个数是几位数
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int getdigit(int i) {
	if (i == 0) {
		return 1;
	}
	return floor(log10(i)) + 1;//floor函数和log()都是math.h头文件里的
}
int main() {
	int n = getdigit(100);
	printf("100是%d位数", n);
	return 0;
}

当然,你想求其他数把100改一下就好。
 

8.pow函数

pow 函数是 C 标准库中的一个函数,用于计算一个数的幂。它定义在 <math.h> 头文件中。

原型:double pow(double base, double exponent);

  • base:底数。
  • exponent:指数

返回值:为一个 double 类型的结果.

代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    double base = 2.0;
    double exponent = 3.0;
    double result = pow(base, exponent);

    printf("%.2f的%.2f次方为%.2f\n", base, exponent, result);

    base = 5.0;
    exponent = 0.0;
    result = pow(base, exponent);

    printf("%.2f的%.2f次方为%.2f\n", base, exponent, result);

    base = 2.0;
    exponent = -2.0;
    result = pow(base, exponent);

    printf("%.2f的%.2f次方为%.2f\n", base, exponent, result);

    return 0;
}

结果如图:

ps:

以上的函数在一般情况下也可以强制转换为int型,只不过可能在某些情况会精度丢失,看个人使用。

比如说求2的3次方,结果为8,这时我们就可以用int型

二.头文件<stdlib.h>

1.abs函数

abs 函数是 C 标准库中的一个函数,用于计算整数的绝对值。它定义在 <stdlib.h> 头文件中。

原型:int abs(int x);

返回值类型abs 函数返回 int 类型的结果。

#include <stdio.h>
#include <stdlib.h>

int main() {
    int num1 = -10;
    int num2 = 10;
    
    int abs_value1 = abs(num1);
    int abs_value2 = abs(num2);

    printf("%d的绝对值为%d\n", num1, abs_value1);
    printf("%d的绝对值为%d\n", num2, abs_value2);

    return 0;
}

结果如图:

附加:

c语言标准库中的宏定义:

以下都属于头文件<limits.h>:

  • CHAR_BIT:一个 char 类型所占用的位数(通常是 8)。
  • SCHAR_MINsigned char 类型的最小值。
  • SCHAR_MAXsigned char 类型的最大值。
  • UCHAR_MAXunsigned char 类型的最大值。
  • CHAR_MINchar 类型的最小值(如果 char 是 signed 类型,与 SCHAR_MIN 相同;否则为 0)。
  • CHAR_MAXchar 类型的最大值(如果 char 是 signed 类型,与 SCHAR_MAX 相同;否则与 UCHAR_MAX 相同)。
  • MB_LEN_MAX:多字节字符中的最大字节数。
  • SHRT_MINshort 类型的最小值。
  • SHRT_MAXshort 类型的最大值。
  • USHRT_MAXunsigned short 类型的最大值。
  • INT_MINint 类型的最小值。
  • INT_MAXint 类型的最大值。(int型的用的比较多)
  • UINT_MAXunsigned int 类型的最大值。
  • LONG_MINlong 类型的最小值。
  • LONG_MAXlong 类型的最大值。
  • ULONG_MAXunsigned long 类型的最大值。
  • LLONG_MINlong long 类型的最小值(如果支持)。
  • LLONG_MAXlong long 类型的最大值(如果支持)。
  • ULLONG_MAXunsigned long long 类型的最大值(如果支持)。

扣1下次派大星还教你

感谢大家的阅读!一键三连

扣1下次派大星还教你

扣1下次派大星还教你

扣1下次派大星还教你

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解HTTP协议版本(HTTP/1.0、1.1、2.0、3.0区别)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

数据采集器

目录 1. 采集Redis 2. 采集MySQL 3. 采集容器 1. 采集Redis 出口商和集成 |普罗 米修斯 (prometheus.io) 发布 奥利弗006/redis_exporter (github.com) 在目标机器上安装redis 上传redis采集器包redis_exporter-v1.53.0.linux-amd64.tar.gz [rootharbor opt]# tar -xf …

web3 solana

网址&#xff1a;HACKQUEST 学习初衷&#xff1a; 1.web3概念较为小众&#xff0c;相比于web2&#xff0c;机会较多 2.有机会remote work&#xff0c;带着笔记本到处浪&#xff0c;听着就不错 3.面对越来越卷的国内&#xff0c;有机会并有能力拥抱国外job&#xff0c;感觉是…

安卓车载多屏互动副屏底部有黑线条NavigationBar分析

背景&#xff1a; 在学习了马哥的wms和多屏互动课程后&#xff0c;大家普遍都可以跟着做出如下图效果的多屏互动&#xff1a; 其实初略来看这个成果已经完成一个多屏互动项目大部分功能&#xff0c;但是其实还是有一些bug的存在&#xff0c;今天我们就来分析一下多屏互动相关的…

FPGA实现SDI视频接收转USB3.0传输,GS2971+FT601方案,提供4套工程源码和QT上位机源码

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的FPGA驱动USB通信方案FPGA基于GS2971的SDI视频解码方案FPGA基于FT601的USB3.0视频传输方案 3、详细设计方案设计原理框图SDI 相机GS2971-SDI解码芯片解读BT1120转RGB888图像缓存FT601-USB3.0芯…

计算机毕业设计选题推荐-校内跑腿业务系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

深入理解操作系统--绪论

文章目录 概述操作系统的基本概念多用户系统用户和组进程 小结 概述 最近在读操作系统&#xff0c;发现一些新的概念。写出来&#xff0c;让自己印象更深&#xff0c;希望也帮助一些不懂的朋友&#xff1b;但愿有所帮助吧。 操作系统的基本概念 计算机都包含操作系统的基本程…

自动化测试的回归策略!

在快速迭代的软件开发过程中&#xff0c;确保软件质量的稳定性和可靠性是每一个开发团队都面临的重要挑战。其中&#xff0c;回归测试作为验证软件变更后是否仍然满足原有需求的重要手段&#xff0c;其重要性不言而喻。而自动化测试的回归策略&#xff0c;正是为了应对这一挑战…

学习记录——day25 多线程编程 临界资源 临界区 竞态 线程的同步互斥机制(用于解决竟态)

目录 ​编辑 一、多进程与多线程对比 二、 临界资源 临界区 竞态 例1&#xff1a;临界资源 实现 输入输出 例2&#xff1a;对临界资源 进行 减减 例子3&#xff1a;临界资源抢占使用 三、线程的同步互斥机制&#xff08;用于解决竟态&#xff09; 3.1基本概念 3.2线…

C#实现数据采集系统-系统优化服务封装

系统优化-服务封装 现在我们调用modbustcp和mqtt都直接在Program,所有加载和功能都混合在一起,比较难以维护 类似asp.net core项目的Program.cs代码如下,构建服务配置和启动 要实现的效果,Main方法中就是一个服务启动,只需要几行代码 分析代码 这里分成两部分,一…

医疗健康类应用,适合采用哪些风格?本文归纳之,并附案例。

医疗健康类应用的设计风格应该注重用户友好性、专业性和清晰易懂。以下是一些适合医疗健康类应用采用的设计风格&#xff1a; 1. 清晰简洁的界面&#xff1a; 医疗健康类应用的界面设计应该简洁清晰&#xff0c;避免过多花哨的元素&#xff0c;让用户能够快速找到他们需要的信…

JAVA-案列练习-ATM项目

在JAVA入门学习后进行的项目练习——模拟ATM系统。 目录 1.设计内容和要求 2.代码实现 &#xff08;1&#xff09;ATM账号类的定义 &#xff08;2&#xff09;ATM类中的操作 &#xff08;3&#xff09;操作说明 3.总结 1.设计内容和要求 01 系统架构搭建&#xff0c;欢…

Spring Cloud全解析:注册中心之Eureka架构介绍

Eureka架构介绍 Eureka在设计时采用的是AP原则&#xff0c;是Netflix的一个子模块&#xff0c;用于微服务的服务注册与发现 P:Partition tolerance,网络分区容错。类似多机房部署&#xff0c;保证服务稳定性A: Availability&#xff0c;可用性C:Consistency &#xff0c;一致…

【时时三省】(C语言基础)函数递归

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ——csdn时时三省 什么是递归 程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法&#xff0c;它通常把一个大型复杂…

Jenkin:动态选择Git分支

Jenkin&#xff1a;动态选择Git分支 build时输入分支 构建的时候添加一个字符参数 选择设置的变量&#xff0c;需要用${}括起来 构建时的效果 build时下拉选择分支 安装Git 参数插件 添加git参数 选择设置的变量&#xff0c;需要用${}括起来 构建时的效果

如何在不同设备上检查您的 IP 地址?

IP 地址&#xff08;Internet 协议地址&#xff09;是网络上设备的唯一标识符。了解如何查找 IP 地址对于解决网络问题、设置网络设备和维护网络安全非常重要。本文将详细介绍如何在不同设备上检查 IP 地址&#xff0c;包括 Windows 计算机、Mac 计算机、智能手机&#xff08;A…

计算机网络快速入门---百年前人们不敢想象的黑科技

目录 1.引言 2.快递VS网络 3.网络模型 3.1两个模型 3.2传输过程 4.IP 4.1IP简介 4.2解决方案一 5.局域网和互联网 5.1局域网说明 5.2互联网说明 6.网络攻击 1.引言 注意&#xff0c;这个只是一个快速入门&#xff0c;不是我开始进行系统学习了&#xff0c;这个博客…

【unity小技巧】unity性能优化以及如何进行性能测试

文章目录 前言GPU性能优化打包素材 CPU性能优化代码执行优化 性能测试Vector2.Distance 和 sqrMagnitude哪个好&#xff1f;动画切换优化shader属性优化 URP渲染器资产优化对象池优化删除没必要的空函数图片、音乐音效、贴图等素材压缩ScriptableObject优化参数参考完结 前言 …

数据结构与算法-15高级数据结构_树论(堆树)

堆树 1 简介 1.1 什么是堆树 定义&#xff1a;堆树是一种特殊的完全二叉树&#xff0c;其中每个节点的值都遵循一定的堆属性。具体来说&#xff0c;堆分为最大堆和最小堆。 最大堆&#xff1a;在最大堆中&#xff0c;每个父节点的值都大于或等于其任何子节点的值。这意味着…

SpringMVC02

1.拦截器 1.1基本概念 SpringMVC 中的Interceptor拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆等操作。对于SpringMVC拦截器的定义方式 有两种: 实现接口:org.springframework.web.ser…