写点什么

【C 语言】计算器

作者:泽En
  • 2022 年 5 月 05 日
  • 本文字数:1846 字

    阅读完需:约 6 分钟

【C语言】计算器

​🚀write in front🚀

🔎​​Hello,大家好我是泽 En,一起共同学习,多多指教(●'◡'●)🔎

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🖊


🤔实现逻辑

首先创建菜单(menu),把我们需要实现的功能打印到运行栏屏幕上。

1、实现加法计算

2、实现减法计算

3、实现除法计算

4、实现乘法计算

0、退出计算器

当然以上都是属于最基本的计算,你当然还可以实现一些其它计算。例如:

位运算(按位与、按位或、按位异或)

左移操作符、右移操作符、取模、开平方等...

由于道理都是一样的只是 return 返回值就可以了在这里不再多述,也有些可以使用库函数直接引用即可像 sqrt()、pow()等......


😐普通代码实现 

计算器⇲の普通代码实现如下⇩

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void menu(){	printf("|-------- 计算器 --------|\n");	printf("|-------★ 1.Add ★------|\n");	printf("|-------★ 2.Sub ★------|\n");	printf("|-------★ 3.Mul ★------|\n");	printf("|-------★ 4.Div ★------|\n");	printf("|-------★ 0.Exit★------|\n");}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;}int main(void){	menu();	double x = 0.0;	double y = 0.0;	double ret = 0.0;	int input = 0;	do	{		printf("请输入菜单界面(input):");		scanf("%d", &input);		if (input == 0)		{			printf("退出Exit!\n");			break;		}		switch (input)		{			case 1:				printf("请输入两个数字:");				scanf("%lf %lf", &x, &y);				ret = Add(x, y); 				printf("ret = %.2lf\n", ret);				break;			case 2:				printf("请输入两个数字:");				scanf("%lf %lf", &x, &y);				ret = Sub(x, y);				printf("ret = %.2lf\n", ret);				break;			case 3:				printf("请输入两个数字:");				scanf("%lf %lf", &x, &y);				ret = Mul(x, y);				printf("ret = %.2lf\n", ret);				break;			case 4:				printf("请输入两个数字:");				scanf("%lf %lf", &x, &y);				ret = Div(x, y);				printf("ret = %.2lf\n", ret);				break; 			default:				printf("你输入的数字错误,请重新输入!\n");		}	} while (1);	return 0;}
复制代码



🙄高级代码实现

计算器⇲の高级代码实现如下⇩

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void menu(){	printf("|-------- 计算器 --------|\n");	printf("|-------★ 1.Add ★------|\n");	printf("|-------★ 2.Sub ★------|\n");	printf("|-------★ 3.Mul ★------|\n");	printf("|-------★ 4.Div ★------|\n");	printf("|-------★ 0.Exit★------|\n");}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;}int main(void){	menu();	double(*p[5])(double, double) = { NULL, Add, Sub, Mul, Div };//函数指针数组!	int input = 0;	do	{		printf("请输入菜单界面上数字:");		scanf("%d", &input);		if (input >= 1 && input <= 4)		{			double x = 0.0, y = 0.0;			printf("请输入两个数字:");			scanf("%lf %lf", &x, &y);			double ret = (*p[input])(x, y);//下标引用			printf("ret = %.2lf\n", ret);			printf("-------\n");		}		else if (input == 0)		{			printf("Exit退出\n");			break;		}		else		{			printf("你输入数字不在范围之内,请重新输入!\n");		}	} while (input);	return 0;}
复制代码



😮运行结果

加法运行结果↓



减法运行结果↓ 



乘法运行结果↓



除法运行结果↓



退出 exit↓



输入错误↓




😋最后

实现 C 语言这种计算器简易的是比较容易的,在这里我们使用的普通代码和高级代码的实现本计算器初学者可能会用到普通代码的实现,但是如果你学过函数指针数组你就可以用这种高级代码的实现方法来做本题。

如果你这里,不用函数指针数组去实现实际上也可以,但是代码量会冗余。推荐使用函数指针的方法来进行实现,效率大大滴提高。

注意这样写它的函数参数必须是统一的才可以。

看到这里了,点个赞吧😋😋😋



发布于: 刚刚阅读数: 2
用户头像

泽En

关注

一起happy! 2022.01.29 加入

谁也不知道旅途的终点是怎么样的,现在只不过是开始。便全力以赴!终点必将是星辰大海。 2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]

评论

发布
暂无评论
【C语言】计算器_5月月更_泽En_InfoQ写作社区