您的位置:首页 > 理论基础

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

2016-05-29 22:49 1276 查看
函数功能:
使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: