码迷,mamicode.com
首页 > 编程语言 > 详细

用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。

时间:2015-11-14 15:10:12      阅读:467      评论:0      收藏:0      [点我收藏+]

标签:简易计算器   c语言   函数   操作数   整数计算机   

函数功能:

使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。


思考:

三个参数中两个操作数不用处理,直接传入即可,而对于第一个操作数就需要处理了,以保证传入的参数是“‘-a‘,‘-s‘,‘-m‘,‘-d‘”,以便于处理计算,第一步将操作符号转化为上述赋好,然后将参数以及操作数传入函数。

程序如下:

/*
**1.使用main函数的参数,实现一个整数计算机,程序可以接受三个参数,
**第一个参数“-a”选项执行加法,“-s”选项执行减法,
**“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
*/
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_math(char *p, int num1, int num2)
{
	assert(p);
	if (p == "-a")
		return num1 + num2;
	else if (p == "-s")
		return num1 - num2;
	else if (p == "-m")
		return num1*num2;
	else if (p == "-d")
		return num1 / num2;
	else return 0;
}
int main()
{
	char a,b;
	char *p=&b;
	int num1 = 0;
	int num2 = 0;
	printf("请输入要计算的算式:");
	scanf("%d%c%d",&num1,&a,&num2);  //录入算式,num1,num2为操作数,a保存的是操作符
	while (1)      //分别对参数指针p赋值,‘+’,‘-’,‘*’,‘/’,分别对应“-a,-s,-m,-d”,如果别的符号队p赋‘\0’
	{
		if (a == ‘+‘)
		{
			p= "-a" ;
			break;
		}
		else if (a == ‘-‘)
		{
			p = "-s";
			break;
		}
		else if (a == ‘*‘)
		{
			p = "-m";
			break;
		}
		else if (a == ‘/‘)
		{
			p = "-d";
			break;
		}
		else *p = ‘\0‘;
	}
	int result = my_math(p, num1, num2);    //函数调用,得到结果。
	printf("%d%c%d=%d\n",num1,a,num2,result);  //分别输出
	system("pause");
	return 0;
}

经过验证,结果正确,注意:录入算数式的时候不要录入等号,如要计算5加3,录入“5+3”即可!


欢迎各位大神批评指正!

本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1712714

用C语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。

标签:简易计算器   c语言   函数   操作数   整数计算机   

原文地址:http://xmwen1.blog.51cto.com/10730069/1712714

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!