/* **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”即可!