指针部分实现计算器

文章介绍了如何使用C语言中的函数指针和回调函数实现一个四则运算计算器,并讨论了如何通过回调简化代码结构。随后扩展功能至支持小数运算和指定小数位数,同时分析了原始版本的优缺点和改进过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

课上所学计算器

本节主要回忆课上所讲的内容,整理思路。首先实现最简单的四则运算函数Add Sub Div Mul ,后搭建do while 加 switch框架,再通过转移表或者回调函数进行函数的调用。同时为了简化代码,后在switch语句的各个case部分使用一个封装函数,实现用户输入操作操作数的功能。

  • 普通计算器

    ​
    #include<stdio.h>;
    
    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;
    }
    
    
    
    
    void menu()
    {
    	printf("#####################\n");
    	printf("###  1 sum 2 sub  ###\n");
    	printf("###  3 mul 4 div  ###\n");
    	printf("###    0 exit     ###\n");
    	printf("#####################\n");
    
    }
    
    
    int main()
    {
    	int input = 0;
    	do
    	{
    		menu();
    		printf("请选择:>");
    		scanf("%d", &input);
            int x=0,y=0,ret=0;
    		switch (input)
    		{
    		case 1:
    	        printf("请输入两个操作数:>");
    	        scanf("%d%*c%d", &x, &y);
    	        int ret = Add(x, y);
    	        printf("结果为%d\n", ret);
    			break;
    		case 2:
    			printf("请输入两个操作数:>");
    	        scanf("%d%*c%d", &x, &y);
    	        int ret = Sub(x, y);
    	        printf("结果为%d\n", ret);
    			break;
    		case 3:
    			printf("请输入两个操作数:>");
    	        scanf("%d%*c%d", &x, &y);
    	        int ret = Mul(x, y);
    	        printf("结果为%d\n", ret);;
    			break;
    		case 4:
    			printf("请输入两个操作数:>");
    	        scanf("%d%*c%d", &x, &y);
    	        int ret =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值