C语言函数指针数组实现计算器功能

要实现一个简单的计算器,我们可以利用函数指针数组来实现。具体的代码实现,可以如下:

1. 定义函数指针

首先,我们需要定义四个函数,分别实现加、减、乘、除操作。然后,我们定义一个函数指针数组,用来存储这四个函数。

// 定义加、减、乘、除四个函数
int add(int a, int b) { return a+b; }
int sub(int a, int b) { return a-b; }
int mul(int a, int b) { return a*b; }
int div(int a, int b) { return a/b; }

// 定义函数指针数组,存储四个函数
int (*calc_func[4])(int, int) = {add, sub, mul, div};

2. 根据用户输入选择运算符

然后,我们需要根据用户的输入,选择对应的运算符。这里我们使用一个switch语句来实现。

// 根据用户输入,选择对应的函数指针
int select_function(char op) {
    switch(op){
        case '+':
            return 0;
        case '-':
            return 1;
        case '*':
            return 2;
        case '/':
            return 3;
        default:
            return -1;
    }
}

其中,当用户输入的运算符不在加、减、乘、除四个运算符中时,我们返回-1,表示进行非法操作。

3. 实现计算器的主函数

最后,我们可以编写主函数来实现计算器的功能。

// 输入两个数字和一个运算符,输出计算结果
void calculator() {
    int a, b;
    char op;
    int func_index;
    printf("请输入数字和运算符:");
    scanf("%d %c %d", &a, &op, &b);
    func_index = select_function(op);
    if(func_index == -1){
        printf("非法操作\n");
        return;
    }
    int result = (*calc_func[func_index])(a, b);
    printf("计算结果为:%d\n", result);
}

例如,我们可以用以下代码来测试:

calculator(); // 输入 2 + 3,会输出计算结果 5
calculator(); // 输入 4 * 5,会输出计算结果 20

至此,我们已经成功实现了一个简单的计算器。这个计算器可以进行加、减、乘、除四个简单的数学运算。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言函数指针数组实现计算器功能 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Android中各种Time API详细

    Android中各种Time API详细攻略 在Android开发中,时间是一个非常基础的概念,也是涉及到很多核心领域(如UI事件处理、数据同步等)的重要因素。本文将详细介绍在Android中使用各种时间API的方法。 System.currentTimeMillis() System.currentTimeMillis()方法返回当前系统时间(自1970年…

    C 2023年5月22日
    00
  • C语言实现ATM自动取款机系统的示例代码

    本文将详细讲解如何使用C语言实现一个ATM自动取款机系统,包括如何进行账户验证、显示余额、进行取款、修改密码等功能。我们将通过一个示例代码来展示实现的过程。下面是完整攻略: 第一步:创建用户结构体 我们需要用一个结构体来表示存储在数据库中的用户信息,包含账户名、密码、余额等属性。以下是一个用户结构体的示例代码: struct user { char user…

    C 2023年5月23日
    00
  • Unix下C程序内存泄漏检测工具Valgrind的安装与使用详解

    下面是对应的攻略。 Unix下C程序内存泄漏检测工具Valgrind的安装与使用详解 1. 简介 Valgrind是一款非常强大的Unix下的C程序内存泄漏检测工具。它能够检测出C语言程序中的内存泄漏、未初始化使用的变量、使用已释放的指针等常见的错误。此外,它还能够检测出死锁等问题,并能够通过日志和报告等形式给出详细的分析结果,帮助开发人员轻松定位和修复程序…

    C 2023年5月30日
    00
  • C++实现AVL树的完整代码

    实现AVL树的完整代码需要遵循以下步骤: 第一步:头文件声明 在代码文件的开头,我们需要声明头文件,以引入所需的库和类。在实现AVL树的完整代码中,我们需要添加以下头文件: #include <iostream> #include <algorithm> 这里用到了C++标准库中的iostream库,用于输入输出操作,以及algori…

    C 2023年5月24日
    00
  • C语言代码实现通讯录管理系统

    C语言代码实现通讯录管理系统 1. 思路 通讯录管理系统主要分为三个模块:显示、添加、删除联系人。首先,我们需要定义一个联系人的结构体,包含姓名、电话、地址等基本信息。然后,通过数组来存储联系人信息,可以通过遍历数组来显示已有联系人,通过添加、删除数组中的元素来添加、删除联系人信息。 2. 代码实现 2.1 定义联系人结构体 在这个管理系统中,我们需要联系人…

    C 2023年5月23日
    00
  • C语言printf详细解析

    C语言printf详细解析 一、printf简介 printf是C语言的标准库函数,主要功能是将数据格式化输出到标准输出设备(通常是命令行窗口)。它的原型如下所示: int printf(const char *format, …); 其中,format参数是一个字符串,用于指定输出的格式;…表示可变参数,用于指定需要输出的数据。 二、格式化字符串 …

    C 2023年5月23日
    00
  • win10应用程序中出现异常未知软件异常(0xe06d7363)的错误代码怎么办

    解决”win10应用程序中出现异常未知软件异常(0xe06d7363)的错误代码”这一问题的完整攻略如下: 1. 确认问题 第一步是确认问题。如果你的Windows 10系统中的应用程序出现了这个错误代码,那么这通常是由于某个应用程序组件出现了问题而导致的。这很可能是由于文件系统上的某种故障或应用程序使用的一些组件出现了问题而导致的。因此,首先要做的是确定哪…

    C 2023年5月23日
    00
  • 死亡搁浅error C0000005h怎么办 C0000005h报错解决方法

    死亡搁浅error C0000005h怎么办 什么是死亡搁浅error C0000005h? “死亡搁浅(error) C0000005h” 是指 Windows 程序在运行时发生访问违例的错误,也就是常见的“访问违例(Access Violation)错误”。这个错误通常会导致程序崩溃,不能正常运行,对于程序的开发和调试都是非常困扰的问题。 C000000…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部