用代码实现一个简单计算器

用代码实现一个简单计算器_第1张图片

作者主页:paper jie的博客_CSDN博客-C语言,算法详解领域博主

本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。

本文录入于《C语言》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将C语言基础知识一网打尽,希望可以帮到读者们哦。

其他专栏:《系统解析C语言》《算法详解》《C语言-语法篇》

内容分享:本期将用C语言实现一个简单的计算器,各位看官姥爷快搬好小板凳坐好叭。

    -------- 不要998,不要98,只要一键三连,三连买不了吃亏,买不了上当

目录

前言

实现思想

具体代码

‍代码一

代码二


前言

计算器大家在生活学习中都接触过,是对于我们运算速度提升的一种很方便的工具。今天,我们就用C语言代码来实现一个简单计算器的功能。在这个过程中,我们会用到循环,函数,指针等一些知识,代码很简单,易理解,大家不用担心,可以很好的理解的。

实现思想

需要设置一个菜单,提示如何操作

我们要可以多次计算,且可以退出计算程序。

我们要用函数将我们需要实现的功能封装起来。

我们要接收函数计算的结果,显示出来。

具体代码

‍代码一

int add(int x, int y)
{
	return x + y;
}
//减法
int sub(int x, int y)
{
	return x - y;
}
//乘法
int mull(int x, int y)
{
	return x * y;
}
//除法
int div(int x, int y)
{
	return x / y;
}
//菜单
void menu()
{
	printf("*****************************\n");
	printf("*****************************\n");
	printf("*****1:add         2:sub*******\n");
	printf("*****3:mull        4:div********\n");
	printf("*****************************\n");
	printf("*****************************\n");
}

int main()
{
	int input = 0;
	int x = 0;
	int y = 0;
	menu();
	//多次使用 当input==0时,停止
	do
	{
		printf("请选择:>");
		scanf("%d", &input);
		//根据input的值来选择要计算的方法
		switch (input)
		{
		case 0:
			printf("退出程序\n");
			break;
		case 1:
			printf("请输入:\n");
			scanf("%d %d", &x, &y);
			printf("%d\n", add(x, y));
			break;
		case 2:
			printf("请输入:\n");
			scanf("%d %d", &x, &y);
			printf("%d\n", sub(x, y));
			break;
		case 3:
			printf("请输入:\n");
			scanf("%d %d", &x, &y);
			printf("%d\n", mull(x, y));
			break;
		case 4:
			printf("请输入:\n");
			scanf("%d %d", &x, &y);
			printf("%d\n", div(x, y));
			break;
			//其他数都错误
		default:
			printf("输入错误,请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

到这就实现了计算器的功能,但是我们发现这里面的代码有些地方非常的冗余,出现的多组重复的代码,我们一旦要加功能进去,重复的代码就会更加多。

代码二

int add(int x, int y)
{
	return x + y;
}
//减法
int sub(int x, int y)
{
	return x - y;
}
//乘法
int mull(int x, int y)
{
	return x * y;
}
//除法
int div(int x, int y)
{
	return x / y;
}
//菜单
void menu()
{
	printf("*****************************\n");
	printf("*****************************\n");
	printf("*****1:add         2:sub*******\n");
	printf("*****3:mull        4:div********\n");
	printf("*****************************\n");
	printf("*****************************\n");
}

int main()
{
	int input = 1;
	int x = 0;
	int y = 0;
	int ret = 0;
	menu();
	//函数指针数组
	//将函数的地址都作为一个指针放到arr数组中了
	//这就是一个转移表
	int (*arr[5])(int, int) = { NULL, add, sub, mull, div };
	//input为0退出 其他继续
	while (input)
	{
		printf("请选择:>");
		scanf("%d", &input);
		
		if (input <= 4 && input >= 1)
		{
			printf("请输入:");
			scanf("%d %d", &x, &y);
			//通过函数指针解引用找到函数求值赋给ret
			ret = (*arr[input])(x, y);
			printf("%d\n", ret);
		}
		else if (input == 0)
			printf("退出程序\n");
		else
			printf("输入错误,请重新输入\n");
	}
	return 0;
}

现在的代码就已经很简洁了,再想加功能,直接将加进来的函数指针放到arr数组中,代码也不会变得冗余,且容易增加。这里我们就是运用了函数指针数组的作用,做了一个转移表,将函数指针放到arr数组中,通过数组来找到函数。


你可能感兴趣的:(C语言,c语言,开发语言)