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

目录

题目及要求

 涉及到的知识点

代码示例

运行实例


题目及要求

编写程序,定义和调用如下函数:
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;
}

运行实例

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我明白了你的要求。以下是定义复数类的代码: ``` #include <iostream> using namespace std; class Complex { private: double x; // 实部 double y; // 虚部 public: Complex() { // 默认构造函数 x = 0; y = 0; } Complex(double a, double b) { // 有参构造函数 x = a; y = b; } ~Complex() { // 析构函数 cout << "Complex object destroyed" << endl; } Complex(const Complex& c) { // 复制构造函数 x = c.x; y = c.y; } void show() const { // 输出复数 cout << x << " + " << y << "i" << endl; } friend Complex add(const Complex& c1, const Complex& c2); // 加法友元函数 friend Complex sub(const Complex& c1, const Complex& c2); // 减法友元函数 friend Complex mul(const Complex& c1, const Complex& c2); // 乘法友元函数 }; Complex add(const Complex& c1, const Complex& c2) { // 加法函数实现 return Complex(c1.x + c2.x, c1.y + c2.y); } Complex sub(const Complex& c1, const Complex& c2) { // 减法函数实现 return Complex(c1.x - c2.x, c1.y - c2.y); } Complex mul(const Complex& c1, const Complex& c2) { // 乘法函数实现 double a = c1.x * c2.x - c1.y * c2.y; double b = c1.x * c2.y + c1.y * c2.x; return Complex(a, b); } int main() { Complex c1(2, 3); Complex c2(4, 5); cout << "c1: "; c1.show(); cout << "c2: "; c2.show(); Complex c3 = add(c1, c2); cout << "c1 + c2 = "; c3.show(); Complex c4 = sub(c1, c2); cout << "c1 - c2 = "; c4.show(); Complex c5 = mul(c1, c2); cout << "c1 * c2 = "; c5.show(); return 0; } ``` 注意,复数类的成员变量 x 和 y 要声明为私有变量,只能通过成员函数访问(例如构造函数、析构函数、复制构造函数和 show 函数)。加法、减法和乘法函数使用了 friend 关键字,使其成为 Complex 类的友元函数,可以直接访问 Complex 类的私有成员变量。程序输出如下: ``` c1: 2 + 3i c2: 4 + 5i c1 + c2 = 6 + 8i c1 - c2 = -2 - 2i c1 * c2 = -7 + 22i Complex object destroyed Complex object destroyed Complex object destroyed Complex object destroyed Complex object destroyed ``` 这个程序定义了一个复数类,包括成员变量、构造函数、析构函数、复制构造函数、输出函数和友元函数。在主函数,通过调用加、减、乘函数实现了复数的加、减、乘运算。在编写复杂的C++代码时,友元函数是一个非常有用的概念,可以与一个类打交道,但不需要暴露类的私有部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Nobody.sir

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

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

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

打赏作者

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

抵扣说明:

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

余额充值