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

来源:互联网 发布:更相减损算法图 编辑:程序博客网 时间:2024/05/17 02:45

函数功能:

使用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

0 0