关于#c语言#的问题:用c语言编写2个数的加、减、乘、除法函数,要求:1、从键盘输入2个数,以及要执行运算的运算符

分别编写2个数的加、减、乘、除法函数,要求:
1、从键盘输入2个数,以及要执行运算的运算符。
2、使用void指针调用对应的函数执行运算,输出结果。

该回答引用自ChatGPT:下面是一个使用 C 语言编写的示例代码,实现了两个数的加、减、乘、除法函数:

#include <stdio.h>

void add(void* a, void* b) {
    // 将 void 指针转换为相应的数据类型指针
    int* num1 = (int*)a;
    int* num2 = (int*)b;
    
    int result = *num1 + *num2;
    printf("加法结果:%d\n", result);
}

void subtract(void* a, void* b) {
    int* num1 = (int*)a;
    int* num2 = (int*)b;
    
    int result = *num1 - *num2;
    printf("减法结果:%d\n", result);
}

void multiply(void* a, void* b) {
    int* num1 = (int*)a;
    int* num2 = (int*)b;
    
    int result = *num1 * *num2;
    printf("乘法结果:%d\n", result);
}

void divide(void* a, void* b) {
    int* num1 = (int*)a;
    int* num2 = (int*)b;
    
    // 检查除数是否为零
    if (*num2 != 0) {
        float result = (float)*num1 / *num2;
        printf("除法结果:%f\n", result);
    } else {
        printf("除数不能为零!\n");
    }
}

int main() {
    int num1, num2;
    char operator;
    
    printf("请输入两个整数:");
    scanf("%d %d", &num1, &num2);
    
    printf("请输入运算符(+、-、*、/):");
    scanf(" %c", &operator);
    
    switch (operator) {
        case '+':
            add(&num1, &num2);
            break;
        case '-':
            subtract(&num1, &num2);
            break;
        case '*':
            multiply(&num1, &num2);
            break;
        case '/':
            divide(&num1, &num2);
            break;
        default:
            printf("无效的运算符!\n");
            break;
    }
    
    return 0;
}

这段代码中,我们定义了四个函数:add、subtract、multiply和divide,分别对应加法、减法、乘法和除法操作。这些函数使用了 void 指针作为参数,因为我们不确定要执行运算的数的具体类型。在函数内部,我们首先将 void 指针转换为相应的数据类型指针,然后进行运算,最后输出结果。

在 main 函数中,我们首先从键盘输入两个整数和要执行的运算符。然后,根据输入的运算符,调用相应的函数来执行运算并输出结果。

请注意,这段代码中没有对输入进行错误处理和边界情况的检查,仅提供了基本的功能演示。在实际开发中,你可能需要添加更多的错误检查和边界情况处理。

#include <iostream>
using namespace std;
 
void addition(int a, int b) {
    cout << a << "+" << b << "=" << a + b << endl;
}
 
void subtraction(int a, int b) {
    cout << a << "-" << b << "=" << a - b << endl;
}
 
void multiplication(int a, int b) {
    cout << a << "*" << b << "=" << a * b << endl;
}
 
void division(int a, int b) {
    if (b != 0) {
        cout << a << "/" << b << "=" << (float)a / b << endl;
    }else{
        cout << "Error: divided by zero" << endl;
    }
}
 
int main() {
    int a, b;
    char op;
    void (*func)(int, int);
 
    cout << "Please input two numbers:" << endl;
    cin >> a >> b;
 
    cout << "Please input the operator:" << endl;
    cin >> op;
 
    switch (op) {
    case '+':
        func = addition;
        break;
    case '-':
        func = subtraction;
        break;
    case '*':
        func = multiplication;
        break;
    case '/':
        func = division;
        break;
    default:
        cout << "Invalid operator" << endl;
        return 0;
    }
 
    (*func)(a, b);
 
    return 0;
}