写一个计算器(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;
}
但是运转结果却是没有出现错误!只不过就是代码感觉不是很合适,因此需要进行简单的简化!
因为,笔者目前已经初步接触函数指针数组,所以可以进行简单的用函数指针来书写!
有兴趣的读者,请参考一下,笔者的下篇博文,下篇博文,将会进行详细的讲解!
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)