函数功能:
使用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语言编写函数实现一个整数计算机,程序接受三个参数,第一个参数为操作项,后两个参数为操作数。
原文地址:http://xmwen1.blog.51cto.com/10730069/1712714