利用C语言实现一个简单的计算器

本文介绍了如何用C语言实现一个基本的计算器,包括暴力写法和涉及函数及函数指针的进阶版本,展示了不同编程技巧和难度层次。

各位小伙伴们大家好哈!

今天呢我们将要给大家介绍一下如何用C语言实现一个简单的计算器,可以实现加减乘除。今天我们将要给大家带来两种代码的书写方式,话不多说直接上代码。

第一种

这种方式也可以称之为暴力写法,顾名思义这种方法简单粗暴,简单易上手涉及的知识十分简单。

#include <stdio.h>
int main()
{
   double a, b;
   char ch;
   scanf("%lf%c%lf",&a, &ch, &b);
   switch(ch)
   {
    case '+':
    printf("%.4lf+%.4lf=%.4lf",a, b, a + b);
    break;
    case '-':
    printf("%.4lf-%.4lf=%.4lf",a, b, a - b);
    break;
    case '*':
    printf("%.4lf*%.4lf=%.4lf",a, b, a * b);
    break;
    case '/':
    if( b == 0.0)
    printf("Wrong!Division by zero!");
    else
    printf("%.4lf/%.4lf=%.4lf",a, b, a / b);
    break;
    default :
    printf("Invalid operation!");
    break;
   }
    return 0;
}

第二种 

这种方法涉及到了函数以及函数指针数组的概念,涉及内容知识更加深入,相对于以上的代码更加,深奥,不利于理解,但是更加凸显出你的实力哈哈哈🌹🌹🌹

#include <stdio.h>
void menum()
{
	printf("************************\n");
	printf("***1 > add  2 > sub  ***\n");
	printf("***3 > mul  4 > div  ***\n");
	printf("***     0 > exit     ***\n");
	printf("************************\n");
}
int Add(int x, int y)
{
	return x + y;
}
int Sub(int x, int y)
{
	return x - y;
}
int Mul(int x, int y)
{
	return x * y;
}
int Div(int x, int y)
{
	return x / y;
}
int main()
{
	int x, y;
	int input = 0;
	int ret = 0;
	int(*parr[5])(int, int) = { NULL, Add, Sub, Mul, Div };
	do
	{
		menum();
		printf("请选择要进行的操作\n");
		scanf("%d", &input);
		if (input <= 4 && input >= 1)
		{
			printf("请输入操作数\n");
			scanf("%d %d", &x, &y);
			ret = (*parr[input])(x, y);
			printf("%d\n", ret);
		}
		else
		{
			if (input == 0)
				break;
			else
				printf("输入错误请重新输入\n");
		}
	} while (input);
	return 0;
}

今天的发分享就这么多啦!

ps: 

前段时间,比较繁忙,因为要准备期中考,所以有些天没有书写博客,现在考试结束,最近时间又变的充足起来啦。所以最近我们更新博客的速度会加快的!!!让我们下篇文章再见吧,各位!

### 如何用C语言实现一个简单计算器功能 以下是一个完整的解决方案,用于实现一个简单的C语言计算器。该计算器能够处理基本的算术运算,包括加法、减法、乘法和除法。 #### 程序设计思路 程序的核心在于解析用户输入并执行相应的数学运算[^1]。通过定义函数来实现每种操作(如加法、减法等),可以使代码结构清晰且易于维护。此外,程序需要考虑异常情况,例如除数为零时的处理。 #### 示例代码 以下是一个完整的C语言简单计算器示例: ```c #include <stdio.h> // 定义基本运算函数 int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } int multiply(int a, int b) { return a * b; } float divide(int a, int b) { if (b == 0) { printf("错误:除数不能为零。\n"); return 0; // 返回0表示错误 } return (float)a / b; } // 主函数 int main() { int num1, num2; char operator; printf("请输入表达式(格式:数字 运算符 数字):\n"); scanf("%d %c %d", &num1, &operator, &num2); switch (operator) { case '+': printf("结果: %d\n", add(num1, num2)); break; case '-': printf("结果: %d\n", subtract(num1, num2)); break; case '*': printf("结果: %d\n", multiply(num1, num2)); break; case '/': printf("结果: %.2f\n", divide(num1, num2)); break; default: printf("错误:不支持的运算符。\n"); } return 0; } ``` #### 代码说明 - **函数定义**:`add`、`subtract`、`multiply` 和 `divide` 分别实现了加法、减法、乘法和除法的功能[^4]。 - **用户输入**:程序通过 `scanf` 获取用户的输入,包括两个整数和一个运算符。 - **异常处理**:在除法运算中,检查除数是否为零,并在必要时输出错误信息。 - **输出结果**:根据用户选择的运算符,调用相应的函数并输出计算结果。 #### 注意事项 - 输入格式必须严格遵循“数字 运算符 数字”的形式,否则可能导致程序行为异常。 - 对于除法运算,需特别注意除数为零的情况,避免程序崩溃。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值