【C编写程序设计】定义和调用如下函数:double add(double x,double y);double sub(double x, double y);double mul(double x)

支付金额使用 BigDecimal 会丢失精度问题 当我们在计算金额或者显示金额时,基本已经形成了常识,都会使用 BigDecimal 而不是其他的,这个也是涉及到金额时非常推荐的一个类型。而我们也都知道浮点型变量在进行计算的时候会出现丢失精度的问题。在我们使用 BigDecimal 的同时,是否知道也会丢失精度呢?接下来我们就一探究竟,从而在计算金额时更好使用 BigDecimal。下面我们看一段代码,如下所示: 通过测试发现,当使用 double 或者 float 这些浮点数据类型时,会丢失精度。如果我们在进行商品价格计算的时候,就会出现问题,如果线上 阅读详情

目录

题目及要求

 涉及到的知识点

代码示例

运行实例


题目及要求

编写程序,定义和调用如下函数:
double add(double x,double y);
double sub(double x, double y);
double mul(double x, double y);
double div(double x, double y);
求两个浮点数的和、差、积、商,要求通过函数指针回调函数。一行中输人两个浮点数,以空格间隔。分行输出两个浮点数的和、差、积、商。

 涉及到的知识点

【C语言程序涉及】        指针

【编译软件】        Visual Studio

代码示例

#include <stdio.h>
double add(double, double);
double sub(double, double);
double mul(double, double);
double div(double, double);
int main(void) {
    double num1, num2, result;
    double (*pf)(double, double);
    scanf_s("%lf%lf", &num1, &num2);        //        编译软件是Dev c++则要把_s去掉
    pf = add;
    result = pf(num1, num2);
    printf("%lf\n", result);
    pf = sub;
    result = pf(num1, num2);
    printf("%lf\n", result);
    pf = mul;
    result = pf(num1, num2);
    printf("%lf\n", result);
    pf = div;
    result = pf(num1, num2);
    printf("%lf\n", result);
    return 0;
}

double add(double x, double y) {
    return x + y;
}
double sub(double x, double y) {
    return x - y;
}
double mul(double x, double y) {
    return x * y;
}
double div(double x, double y) {
    return x / y;
}

#include <stdio.h>
double add(double, double);
double sub(double, double);
double mul(double, double);
double div(double, double);
int main(void) {
    double num1, num2, result;
    double (*pf)(double, double);
    scanf_s("%lf%lf", &num1, &num2);
    pf = add;
    result = pf(num1, num2);
    printf("%lf\n", result);
    pf = sub;
    result = pf(num1, num2);
    printf("%lf\n", result);
    pf = mul;
    result = pf(num1, num2);
    printf("%lf\n", result);
    pf = div;
    result = pf(num1, num2);
    printf("%lf\n", result);
    return 0;
}

double add(double x, double y) {
    return x + y;
}
double sub(double x, double y) {
    return x - y;
}
double mul(double x, double y) {
    return x * y;
}
double div(double x, double y) {
    return x / y;
}

运行实例

【跟着小甲鱼学C语言】P30 指针函数和函数指针 指针函数和函数指针 1.如何在函数中改变传入的实参的值 只需要把函数的形参写成指针就可以了,这种情况下形参在传入的时候相当于传入的是它的地址,函数在修改值的时候会直接找到这个地址,去改这个内存地址中的值,所以会吧实参的值给修改掉,而不会像使用普通参数的函数一样,局部参数用完就释放,跟外部没有任何关系。 2.指针函数 其实没什么特别的,指针函数就是返回值为一个指针的函数,需要注意的只有一点,就是不要... 阅读详情

相关推荐

C语言函数指针:从回调到多态,解锁动态编程范式

函数指针是C语言中一种强大的编程范式,它允许将函数作为数据进行存储和传递。其核心原理在于,函数指针变量存储的是函数的入口地址,而非普通数据,这使得程序能够在运行时动态地决定调用哪个函数,为静态的C语言赋予了难得的动态特性。这一机制的技术价值在于实现了代码的解耦与行为的参数化,是构建灵活、可扩展软件架构的关键。在工程实践中,函数指针广泛应用于回调函数(如标准库的qsort)、实现策略模式、构建状态机或命令表,以及在C语言中模拟面向对象的多态行为。通过深入理解函数指针的声明、typedef使用及安全实践,开发者

weixin_30861459的博客 333

《c语言入门题目21》编写程序,定义和调用如下函数求两个浮点数的和、差、积、商,要求通过函数指针回调函数,一行中输入两个浮点数,以空格间隔分行并输出两个浮点数的和、差、积、商。

编写程序,定义和调用如下函数: double add(double x, double y); double sub(double x, double y); double mul(double x, double y); double div(double x, double y); 求两个浮点数的和、差、积、商,要求通过函数指针回调函数。一行中输入两个浮点数,以空格间隔。分行输出两个浮点数的和、差、积、商。

Alueaxten的成长历程 1613

Double & Add

一种在椭圆曲线上执行点乘法的算法,通常用于椭圆曲线密码学中的密钥生成和数字签名等操作。用于计算一个点的倍数,即将一个点与一个整数相乘。算法包括两个基本操作,加法和倍增。

CCC_B的博客 367

两个double之间的运算

两个double之间的加、减、乘、除;double转换百分比

Marshall_Ma的博客 2604

给新人的储能系统入门图解:从电芯到EMS,一张图看懂BESS里那些‘黑话’

本文通过视觉化拆解储能系统,从电芯到EMS详细解析BESS中的关键组件和行业术语。涵盖电芯参数、模组组装、PCS功能、BMS与EMS分工,以及SOC、DOD等关键运维参数,帮助新人快速理解储能系统的核心技术和应用场景。

weixin_42522964的博客 593

达妙电机MIT模式调参实战:如何从‘曲线偏离’到‘完美追踪’正弦波?

本文详细解析了达妙电机MIT模式调参实战,从曲线偏离到完美追踪正弦波的方法论。通过MATLAB实时曲线分析,深入探讨位置环(kp)和速度环(kd)的双重调节技巧,帮助工程师优化参数组合,提升电机控制精度和稳定性。

weixin_29053073的博客 731

第7.3关 函数声明

第7.3关 函数声明

m0_73460731的博客 1392

Autosar结合simulink的汽车应用层软件开发实例

本文基于汽车应用开发案例,并结合Autosar相关知识,生成具有Autosar标准的汽车应用层开发代码,以供学习和参考。以上就是本篇内容,主要是利用Simulink创建Autosar接口并进行端口映射的方法。

m0_64899535的博客 2152

double fun在c语言中是什么意思,编写函数 double fun(double x,double y),计算两参数平方差的绝对值,做为函数返回值....

编写函数fun,函数首部为double fun(int n),其功能是计算S=1!+2!+3!...6个答案-提问时间: 2011-10-13-6个赞问题说明:"S=1!+2!+3!+......+n!"求n的阶乘(n是整数)回答:#include #include double fun(int n)//计算1!+2!+3!+......+n!,并赋值给fun { int i; doub...

weixin_29417071的博客 8281

ns3-gym入门(二):linear-mesh例子详解

学习ns3-gym中关于IEEE 802.11网状网络中控制随机接入的例子linear-mesh

zoe2222226666的博客 1842

攀藤PMS系列传感器STM32驱动开发与数据解析实战

本文详细介绍了攀藤PMS系列传感器与STM32微控制器的驱动开发与数据解析实战,涵盖硬件连接、数据协议解析、驱动源码编写及数据处理优化。重点解析了传感器数据帧结构,提供了完整的STM32驱动实现代码,并分享了实际应用中的问题排查与性能优化经验,帮助开发者快速实现高精度颗粒物浓度检测。

milk8的博客 347

【C语言】—— qsort()函数的使用

qsort函数讲解,详细版,快进来看看吧!

2201_75366661的博客 1292

《多模态融合改进》支持目标检测、目标分割、OBB、姿态估计,配置教程

本文以为例,讲解如何配置,支持替换专栏里所有的改进方式。

Limiiiing的博客 795

C语言函数栈帧的创建和销毁

● 寄存器(Register)是中央处理机、主存储器和其他数字设备中具有某些特定用途的存储单元。寄存器是集成电路中非常重要的一种存储单元;其可用来暂存指令、数据和地址。 ● 函数栈帧是指函数被调用时,系统为该函数在栈(Stack)区开辟的一段内存空间。

m0_62183318的博客 1271

【Claude Code】Not logged in 未登录错误解决方案 + /login 认证路径

Claude Code 启动时提示 Not logged in 表示当前会话缺少有效凭证。本文从环境变量、API Key 配置、CI 自动化凭证脚本和系统时钟四个维度,提供完整的认证排查流程与修复方案。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 893

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

C++-练习-53

设计一个名为calculate()的函数,它接受两个double值和一个指向函数的指针,而被指向的函数接受两个double参数,并返回一个double值。calculate()函数的类型也是double,并返回被指向的函数使用calculate()的两个double参数计算得到的值。例如,假设add()函数的定义如下: double add(double x,double y) { return x + y; } 则下述代码中的函数嗲用将导致calculate()把2.5和10.4传递给add()函数,并

little_startoo的博客 183

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【C语言入门】函数详解

本文介绍了C语言中函数的基本概念与分类,包括库函数和自定义函数的定义与使用方法。库函数是标准提供的功能函数,使用时需包含对应头文件;自定义函数则由程序员根据需求自行设计。文章详细讲解了函数的结构、形参与实参的区别,并通过代码示例展示了函数的具体应用。

weixin_45084469的博客 273

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c++ double 转 int_认识CC++中的函数

一、函数原型函数原型函数原型又称为函数签名,顾名思义,通过函数原型就能够找到你要的函数。函数原型是一种区分函数身份的声明,声明指定了函数的名称、形参类型及函数的返回类型。形参名称在函数原型声明中并不是必须的,即形参名称事实上是可以忽略的。如果两个函数的原型声明仅返回类型不同其它都相同的原型声明是不允许的。通过提供函数原型声明,然后再进行函数定义或调用,C++成为强类型的程序设计语言。强类型的程序设...

weixin_35407400的博客 6589

c语言第五章函数答案,第5章 函数(答案)

C语言程序设计基础 课后习题参考答案第5章 函数一、 选择题1、以下所列的各函数首部中,正确的是(C)A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)2、以下正确的函数的形式是(B)A) doubl...

weixin_33196555的博客 1957

4.函数,递归和迭代【由浅入深.c】

本文介绍函数和递归相关内容。

插花弄玉的博客 653

C语言06-函数与预处理指令

本文介绍了C语言函数的定义、调用、参数传递及递归等核心概念,重点讲解了函数设计原则(模块化、高内聚低耦合)、变量作用域与生命周期(局部/全局变量)、四种存储类型(auto/register/extern/static)及内存分区管理。同时详细解析了预处理指令(#include/#define/条件编译)的使用场景与技巧,包括宏定义与函数的区别、头文件包含规范以及条件编译在代码调试和跨平台开发中的应用。通过实例代码(如阶乘递归、汉诺塔、数组排序等)演示了关键技术的实际应用,为C语言开发提供了全面指导。

weixin_53143624的博客 842

C语言程序设计精髓习题总汇

目录 认识变量和常量 1.1 hello world! 1.2 在屏幕上输出多行信息 1.3 计算半圆弧长以及半圆的面积 1.4 计算长方形体积 计算 2.1 输出逆序数 2.2 计算总分和平均分 2.3 存款利率计算器V1.0 2.4 数位拆分v1.0 2.5 求正/负余数 2.6 身高预测 2.7 求一元二次方程的根 输入输出 3.1 日期显示 3.2 产品信息格式化 3.3 计算...

一点记录 2万+

c语言中fff(float x),C语言复习参考答案(考试用)1

程序设计语言C复习 { k*=num;num/=10;}while(num); return k;} main(){ unsigned n=26; printf(“%d\\n”,fun6(n)); } 2.以下程序的输出结果是 9.000000 。double sub(double x,double y,double z) { y-=1.0;z=z+x;return z;} main(){ d...

weixin_32519927的博客 1895

如何让你的存在感脱颖而出:cord.nvim 自定义 Assets 与 6 大图标主题指南

[cord.nvim](https://link.gitcode.com/i/2735fad8051b6b2e0fc0d205d72588cb) 是 Neovim 用户最爱的 Discord Rich Presence 插件之一——它会实时把"你在编辑哪个文件、哪个项目"展示在你的 Discord 个人状态里。而真正让它从"能用"升级为"出众"的,是两大功能:🎨 **图标主题**(6 套风格、1

gitblog_00044的博客 1068

OBS Studio libobs vec2 二维向量 API 全解:结构定义、25 个函数与图形管线中的实际应用

本文围绕 OBS Studio 中 `libobs/graphics/vec2.h` 提供的二维向量(`vec2`)类型展开,完整梳理其结构体内存布局、25 个 API 函数的签名与语义,并结合 `libobs` 图形子系统(顶点坐标、着色器参数)、场景项变换(位置/缩放)与设置数据(`obs_data`)中的真实调用点,说明 `vec2` 在 OBS 渲染管线中的实际用途。读完本文,你可以直接在

gitblog_01096的博客 672
上一篇: [C语言程序设计】编写程序,定义和调用函数 int sum(int (*fp)(int),int start,intend)和int f(intx),f0函数的功能是求x的平方;从键盘输入两个整数。
下一篇: 【注册页面/路由】Vue2+elementUI写一个注册页面,并且需要确认密码(完整代码)
Nobody.sir
博客等级 码龄4年 100粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nobody.sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值