写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算

举报
念君思宁 发表于 2023/02/16 17:41:33 2023/02/16
【摘要】 写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算

写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算

对于求出整数的加减乘除问题,我想大家现如今看见笔者此篇博文时候!大多都已经能够正确写出准确的代码来求整数的加减乘除了!其实对于计算器,并不仅仅只限于加减乘除,还有其他的数值运算类型,由于笔者能力所限制,暂时不做过多的讲述!

下面请看笔者对于:写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!

代码的书写过程详解!

1.对于一个小游戏,我们需要一个菜单,来指引我们进行简单的输入!

因此,打印菜单就是第一要务!其实对于菜单,并没有多么的复杂化,只要很简单的小小几步,就能书写出来,下面是笔者所写的菜单代码!

#include <stdio.h>
 
void menu()
{
	printf("***************************\n");
	printf("***** 1.add    2. sub  ****\n");
	printf("***** 3.mul    4. div  ****\n");
	printf("*****      0.exi       ****\n");
	printf("***************************\n");
}
 
int main()
{
	menu();
 
	return 0;
}

上述代码段,定义了一个menu函数来打印菜单

下面是笔者的运转结果!符合我们的预期,因此简简单单的菜单就已经打印出来了!

2.在main 函数里面,书写出简单的代码需求:

int main()
{
	menu();
	int input = 0;   
//定义input为菜单上面的选择数字
	int x = 0;
	int y = 0;
//输入想要计算的数字
	int ret = 0;
 
	printf("请选择 : 》");
	scanf_s("%d", &input);
	printf("请输入两个操作数:》");
	scanf_s("%d %d", &x, &y);
 
	return 0;
}

上述代码段,是主要的方向,下面,对于输出入input进行简单的选择!

	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		
		switch (input)
		{
		case 1:
			ret = Add(x, y);
			printf("%d\n", ret);
			break;
		case 2:	
			ret = Sub(x, y);
			printf("%d\n", ret);
			break;
		case 3:
			ret = Mul(x, y);
			printf("%d\n", ret);
			break;
		case 4:
			ret = Div(x, y);
			printf("%d\n", ret);
			break;
		case 0:
			printf("退出计算器\n");
			break;
		default:
			printf("选择错误\n");
			break;
		}
	} while (input);

上述代码段中,用了do  while() 循环,还有switch....case; break;选择语句穿插在其中;所以使得结构更加完整!

3.下面笔者来对加减乘除四个运算,来定义函数!

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;
}

4.上述代码段中,笔者用函数的写法,来定义了分别对应的加减乘除函数!

上述代码合起来就是:

 
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;
}
 
#include <stdio.h>
 
void menu()
{
	printf("***************************\n");
	printf("***** 1.add    2. sub  ****\n");
	printf("***** 3.mul    4. div  ****\n");
	printf("*****      0.exit      ****\n");
	printf("***************************\n");
}
 
int main()
{
	//menu();
 
	int input = 0;
	//定义input为菜单上面的选择数字
	int x = 0;
	int y = 0;
	//输入想要计算的数字
	int ret = 0;
 
 
		do
	{
		menu();
 
		printf("请选择 : 》");
		scanf_s("%d", &input);
		printf("请输入两个操作数:》");
		scanf_s("%d %d", &x, &y);
		
		switch (input)
		{
		case 1:
			ret = Add(x, y);
			printf("%d\n", ret);
			break;
		case 2:	
			ret = Sub(x, y);
			printf("%d\n", ret);
			break;
		case 3:
			ret = Mul(x, y);
			printf("%d\n", ret);
			break;
		case 4:
			ret = Div(x, y);
			printf("%d\n", ret);
			break;
		case 0:
			printf("退出计算器\n");
			break;
		default:
			printf("选择错误\n");
			break;
		}
	} while (input);
 
	return 0;
}

因此上述代码合起来便能运算出来结果!

 

上述代码为笔者所运行出来的结果:在此笔者也能清晰的看出来,输入8已经超过了菜单的……

但是又出现了“请输入两个操作数”,所以出现了,错误!

因此,就是,需要进行点更改:

5.更改后的代码为:

		do
		{
			menu();
			printf("请选择:>");
			scanf_s("%d", &input);
			
			switch (input)
			{
			case 1:
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Add(x, y);
				printf("%d\n", ret);
				break;
			case 2:	
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Sub(x, y);
				printf("%d\n", ret);
				break;
			case 3:
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Mul(x, y);
				printf("%d\n", ret);
				break;
			case 4:
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Div(x, y);
				printf("%d\n", ret);
				break;
			case 0:
				printf("退出计算器\n");
				break;
			default:
				printf("选择错误\n");
				break;
			}
		} while (input);

上述的代码运算结果为:

 由上述的代码跟运转结果可以看出:每次都输入了两句……

printf("请输入2个操作数:>");
scanf_s("%d %d", &x, &y);

显得过于复杂!

6.因此,总的代码为:(运行结果没有错误)!

 
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;
}
 
#include <stdio.h>
 
void menu()
{
	printf("***************************\n");
	printf("***** 1.add    2. sub  ****\n");
	printf("***** 3.mul    4. div  ****\n");
	printf("*****      0.exit      ****\n");
	printf("***************************\n");
}
 
int main()
{
	//menu();
 
	int input = 0;
	//定义input为菜单上面的选择数字
	int x = 0;
	int y = 0;
	//输入想要计算的数字
	int ret = 0;
 
	/*printf("请选择 : 》");
	scanf_s("%d", &input);
	printf("请输入两个操作数:》");
	scanf_s("%d %d", &x, &y);*/
 
		do
		{
			menu();
			printf("请选择:>");
			scanf_s("%d", &input);
			
			switch (input)
			{
			case 1:
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Add(x, y);
				printf("%d\n", ret);
				break;
			case 2:	
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Sub(x, y);
				printf("%d\n", ret);
				break;
			case 3:
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Mul(x, y);
				printf("%d\n", ret);
				break;
			case 4:
				printf("请输入2个操作数:>");
				scanf_s("%d %d", &x, &y);
				ret = Div(x, y);
				printf("%d\n", ret);
				break;
			case 0:
				printf("退出计算器\n");
				break;
			default:
				printf("选择错误\n");
				break;
			}
		} while (input);
 
	return 0;
}

但是运转结果却是没有出现错误!只不过就是代码感觉不是很合适,因此需要进行简单的简化!

因为,笔者目前已经初步接触函数指针数组,所以可以进行简单的用函数指针来书写!

有兴趣的读者,请参考一下,笔者的下篇博文,下篇博文,将会进行详细的讲解!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。